diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java index d453d882e57b..35e01fd719a6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java @@ -551,6 +551,21 @@ protected String formatIdentifier(String name, boolean capitalized) { return escapeReservedWord(identifier); } + protected String formatEnumIdentifier(String name) { + if (specialCharReplacements.containsKey(name)) { + name = specialCharReplacements.get(name); + } + + String sanitized = sanitizeName(name); + + // Preserve SCREAMING_SNAKE_CASE enum values + if (sanitized.matches("^[A-Z][A-Z0-9_]*$") + && !isReservedWord(sanitized)) { + return sanitized; + } + + return formatIdentifier(sanitized, true); + } protected String stripPackageName(String input) { if (!stripPackageName || StringUtils.isEmpty(input) || input.lastIndexOf(".") < 0) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java index 04e1086dc85d..eee786fedbe4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java @@ -628,7 +628,7 @@ public String toDefaultValue(Schema p) { private class EnumEntryLambda extends CustomLambda { @Override public String formatFragment(String fragment) { - return formatIdentifier(fragment, true); + return formatEnumIdentifier(fragment); } }