Skip to content

Commit 4003918

Browse files
committed
fix(cts): use the real java enum
1 parent e037d78 commit 4003918

File tree

5 files changed

+35
-10
lines changed

5 files changed

+35
-10
lines changed

generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
@SuppressWarnings("unchecked")
2121
public class AlgoliaJavaGenerator extends JavaClientCodegen {
2222

23+
// This is used for the CTS generation
24+
private static final AlgoliaJavaGenerator INSTANCE = new AlgoliaJavaGenerator();
25+
2326
@Override
2427
public String getName() {
2528
return "algolia-java";
@@ -95,13 +98,7 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
9598
return operations;
9699
}
97100

98-
@Override
99-
public String toEnumVarName(String value, String datatype) {
100-
// when it's not a string, we don't want to change the name of the variable generated
101-
if (!"String".equals(datatype)) {
102-
return super.toEnumVarName(value, datatype);
103-
}
104-
101+
public static String toEnum(String value) {
105102
// In some cases, the API might accept characters instead of the textual notation, we will
106103
// replace it internally so that it doesn't output the character itself.
107104
switch (value) {
@@ -134,7 +131,17 @@ public String toEnumVarName(String value, String datatype) {
134131
return value.replaceAll("-", "_").replaceAll("(.+?)([A-Z]|[0-9])", "$1_$2").toUpperCase(Locale.ROOT);
135132
}
136133

137-
return super.toEnumVarName(value, datatype);
134+
return value;
135+
}
136+
137+
@Override
138+
public String toEnumVarName(String value, String datatype) {
139+
// when it's not a string, we don't want to change the name of the variable generated
140+
if (!"String".equals(datatype)) {
141+
return super.toEnumVarName(value, datatype);
142+
}
143+
144+
return super.toEnumVarName(toEnum(value), datatype);
138145
}
139146

140147
/** Convert a Seq type to a valid class name. */

generators/src/main/java/com/algolia/codegen/cts/AlgoliaCTSGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ protected Builder<String, Lambda> addMustacheLambdas() {
9898
lambdas.put("replaceBacktick", new ReplaceBacktickLambda());
9999
lambdas.put("scalaIdentifier", new ScalaIdentifierLambda());
100100
lambdas.put("csharpIdentifier", new CSharpIdentifierLambda());
101+
lambdas.put("javaEnum", new JavaEnumLambda());
101102
lambdas.put("codeSnakeCase", new CodeSnakeCaseLambda());
102103
lambdas.put("escapeRubyKeywords", new EscapeRubyKeywordsLambda());
103104
lambdas.put("swiftIdentifier", new SwiftIdentifierLambda());
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.algolia.codegen.cts.lambda;
2+
3+
import com.algolia.codegen.AlgoliaJavaGenerator;
4+
import com.samskivert.mustache.Mustache;
5+
import com.samskivert.mustache.Template;
6+
import java.io.IOException;
7+
import java.io.Writer;
8+
9+
public class JavaEnumLambda implements Mustache.Lambda {
10+
11+
@Override
12+
public void execute(Template.Fragment frag, Writer out) throws IOException {
13+
String text = frag.execute();
14+
var formatted = AlgoliaJavaGenerator.toEnum(text);
15+
out.write(formatted);
16+
}
17+
}

templates/java/tests/generateInnerParams.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
{{{value}}}
1818
{{/isBoolean}}
1919
{{#isEnum}}
20-
{{{objectName}}}.fromValue("{{{value}}}")
20+
{{{objectName}}}.{{#lambda.javaEnum}}{{{value}}}{{/lambda.javaEnum}}
2121
{{/isEnum}}
2222
{{#isArray}}
2323
List.of({{#value}}{{> tests/generateParams}}{{^-last}},{{/-last}}{{/value}})

website/src/snippets.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ if err != nil {
8282
'java': {
8383
'add': `client.waitForApiKey(ApiKeyOperation.ADD, response.Key, null)`,
8484
'update': `client.waitForApiKey(ApiKeyOperation.UPDATE, response.Key, new ApiKey()
85-
.setAcl(List.of(Acl.fromValue("search"), Acl.fromValue("addObject")))
85+
.setAcl(List.of(Acl.SEARCH, Acl.ADD_OBJECT))
8686
.setValidity(300)
8787
.setMaxQueriesPerIPPerHour(100)
8888
.setMaxHitsPerQuery(20))`,

0 commit comments

Comments
 (0)