From a117dd55f1263fe0e0e76ead42efcb586096b6d4 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 27 Nov 2023 20:25:15 +0800 Subject: [PATCH] add enum name mapping feature to kotlin generators (#17193) --- bin/configs/kotlin-enum-default-value.yaml | 2 ++ .../openapitools/codegen/languages/AbstractKotlinCodegen.java | 4 ++++ .../kotlin/org/openapitools/client/models/PropertyOfDay.kt | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/configs/kotlin-enum-default-value.yaml b/bin/configs/kotlin-enum-default-value.yaml index ddb00c55283..b27ccfd73af 100644 --- a/bin/configs/kotlin-enum-default-value.yaml +++ b/bin/configs/kotlin-enum-default-value.yaml @@ -7,3 +7,5 @@ additionalProperties: serializableModel: "true" dateLibrary: java8 enumUnknownDefaultCase: true +enumNameMappings: + CHRISTMAS_DAY: XMAS_DAY diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java index d3f7fd6dbab..35e5e4a245a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java @@ -599,6 +599,10 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co */ @Override public String toEnumVarName(String value, String datatype) { + if (enumNameMapping.containsKey(value)) { + return enumNameMapping.get(value); + } + String modified; if (value.length() == 0) { modified = "EMPTY"; diff --git a/samples/client/petstore/kotlin-enum-default-value/src/main/kotlin/org/openapitools/client/models/PropertyOfDay.kt b/samples/client/petstore/kotlin-enum-default-value/src/main/kotlin/org/openapitools/client/models/PropertyOfDay.kt index b00e68b7592..87a592b41cc 100644 --- a/samples/client/petstore/kotlin-enum-default-value/src/main/kotlin/org/openapitools/client/models/PropertyOfDay.kt +++ b/samples/client/petstore/kotlin-enum-default-value/src/main/kotlin/org/openapitools/client/models/PropertyOfDay.kt @@ -106,7 +106,7 @@ data class PropertyOfDay ( /** * Holiday types * - * Values: nOTHOLIDAY,lOCALHOLIDAY,nATIONALHOLIDAY,aNYHOLIDAY,wORKINGDAY,aNYDAY,nEWYEARSDAY,pALMSUNDAY,mAUNDYTHURSDAY,gOODFRIDAY,eASTERSUNDAY,eASTERMONDAY,lABOURDAY,cONSTITUTIONDAY,aSCENSIONDAY,wHITSUNDAY,wHITMONDAY,cHRISTMASDAY,bOXINGDAY,unknownDefaultOpenApi + * Values: nOTHOLIDAY,lOCALHOLIDAY,nATIONALHOLIDAY,aNYHOLIDAY,wORKINGDAY,aNYDAY,nEWYEARSDAY,pALMSUNDAY,mAUNDYTHURSDAY,gOODFRIDAY,eASTERSUNDAY,eASTERMONDAY,lABOURDAY,cONSTITUTIONDAY,aSCENSIONDAY,wHITSUNDAY,wHITMONDAY,XMAS_DAY,bOXINGDAY,unknownDefaultOpenApi */ @JsonClass(generateAdapter = false) enum class HolidayTypes(val value: kotlin.Any) { @@ -127,7 +127,7 @@ data class PropertyOfDay ( @Json(name = "ASCENSION_DAY") aSCENSIONDAY("ASCENSION_DAY"), @Json(name = "WHIT_SUNDAY") wHITSUNDAY("WHIT_SUNDAY"), @Json(name = "WHIT_MONDAY") wHITMONDAY("WHIT_MONDAY"), - @Json(name = "CHRISTMAS_DAY") cHRISTMASDAY("CHRISTMAS_DAY"), + @Json(name = "CHRISTMAS_DAY") XMAS_DAY("CHRISTMAS_DAY"), @Json(name = "BOXING_DAY") bOXINGDAY("BOXING_DAY"), @Json(name = "11184809") unknownDefaultOpenApi("11184809"); }