diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index d7d1fc34ef3..c9ceb316baa 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -6615,11 +6615,24 @@ public class DefaultCodegen implements CodegenConfig { } protected void postProcessEnumVars(List> enumVars) { + Collections.reverse(enumVars); enumVars.forEach(v -> { - if (enumVars.stream().filter(v1 -> v1.get("name").equals(v.get("name"))).count() > 1) { - LOGGER.debug("Enumeration contains duplicate name " + v.get("name")); + String name = (String) v.get("name"); + long count = enumVars.stream().filter(v1 -> v1.get("name").equals(name)).count(); + if (count > 1) { + String uniqueEnumName = getUniqueEnumName(name, enumVars); + LOGGER.debug("Changing duplicate enumeration name from " + v.get("name") + " to " + uniqueEnumName); + v.put("name", uniqueEnumName); } }); + Collections.reverse(enumVars); + } + + private String getUniqueEnumName(String name, List> enumVars) { + long count = enumVars.stream().filter(v -> v.get("name").equals(name)).count(); + return count > 1 + ? getUniqueEnumName(name + count, enumVars) + : name; } protected void updateEnumVarsWithExtensions(List> enumVars, Map vendorExtensions, String dataType) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index def830f927f..3bbae5244ce 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -409,28 +409,6 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co this.setTypeMapping(); } - @Override - protected void postProcessEnumVars(List> enumVars) { - Collections.reverse(enumVars); - enumVars.forEach(v -> { - String name = (String) v.get("name"); - long count = enumVars.stream().filter(v1 -> v1.get("name").equals(name)).count(); - if (count > 1) { - String uniqueEnumName = getUniqueEnumName(name, enumVars); - LOGGER.debug("Changing duplicate enumeration name from " + v.get("name") + " to " + uniqueEnumName); - v.put("name", uniqueEnumName); - } - }); - Collections.reverse(enumVars); - } - - private String getUniqueEnumName(String name, List> enumVars) { - long count = enumVars.stream().filter(v -> v.get("name").equals(name)).count(); - return count > 1 - ? getUniqueEnumName(name + count, enumVars) - : name; - } - @Override protected ImmutableMap.Builder addMustacheLambdas() { return super.addMustacheLambdas()