Skip to content

Commit b722fd9

Browse files
authored
cache the model name for faster lookup in r client gen (OpenAPITools#12918)
1 parent d2be711 commit b722fd9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
6868
protected boolean useRlangExceptionHandling = false;
6969
protected String errorObjectType;
7070

71+
private Map<String, String> schemaKeyToModelNameCache = new HashMap<>();
72+
7173
public CodegenType getTag() {
7274
return CodegenType.CLIENT;
7375
}
@@ -341,6 +343,12 @@ public String toModelFilename(String name) {
341343

342344
@Override
343345
public String toModelName(String name) {
346+
// memoization
347+
String origName = name;
348+
if (schemaKeyToModelNameCache.containsKey(origName)) {
349+
return schemaKeyToModelNameCache.get(origName);
350+
}
351+
344352
if (!StringUtils.isEmpty(modelNamePrefix)) {
345353
name = modelNamePrefix + "_" + name;
346354
}
@@ -364,6 +372,7 @@ public String toModelName(String name) {
364372
name = "model_" + name; // e.g. 200Response => Model200Response (after camelize)
365373
}
366374

375+
schemaKeyToModelNameCache.put(origName, camelize(name));
367376
return camelize(name);
368377
}
369378

0 commit comments

Comments
 (0)