From 06547b7b825c018f62b0a90d3da6f81c2b6ff3f5 Mon Sep 17 00:00:00 2001 From: Tanmay Mohapatra Date: Wed, 6 Nov 2024 13:34:15 +0530 Subject: [PATCH] [julia] improve enum support (#20016) * [julia] improve enum support Improved enum support. Added an override for `postProcessModels` method in julia code generator to do enum post processing. Added an override for `toEnumValue` method in julia code generator to generate enum values correctly based on julia types. Updated templates to use `#enumVars` for generating enum values. * generated samples --- .../languages/AbstractJuliaCodegen.java | 44 +++++++++++++++++++ .../partial_model_single.mustache | 6 +-- .../partial_model_single.mustache | 6 +-- .../julia/src/models/model_ApiResponse.jl | 3 ++ .../julia/src/models/model_Category.jl | 2 + .../julia/src/models/model_MappedModel.jl | 2 + .../petstore/julia/src/models/model_Order.jl | 7 +++ .../petstore/julia/src/models/model_Pet.jl | 7 +++ .../petstore/julia/src/models/model_Tag.jl | 2 + .../petstore/julia/src/models/model_User.jl | 8 ++++ .../julia/src/models/model_AnotherModel.jl | 2 + .../julia/src/models/model_ApiResponse.jl | 3 ++ .../julia/src/models/model_Category.jl | 2 + .../petstore/julia/src/models/model_Order.jl | 7 +++ .../petstore/julia/src/models/model_Pet.jl | 7 +++ .../petstore/julia/src/models/model_Tag.jl | 2 + .../petstore/julia/src/models/model_User.jl | 8 ++++ 17 files changed, 112 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java index 3f2549780f5..81cee1d2786 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java @@ -25,6 +25,7 @@ import org.openapitools.codegen.meta.features.ParameterFeature; import org.openapitools.codegen.meta.features.SchemaSupportFeature; import org.openapitools.codegen.meta.features.SecurityFeature; import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.model.ModelsMap; import java.io.File; import java.text.SimpleDateFormat; @@ -70,6 +71,25 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen { protected final DateTimeFormatter OFFSET_DATE_TIME_FORMAT = DateTimeFormatter.ISO_OFFSET_DATE_TIME; protected final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ROOT); protected final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); + protected final List UNQUOTED_DATATYPES = Arrays.asList( + "int", + "integer", + "long", + "short", + "byte", + "float", + "double", + "number", + "decimal", + "boolean", + "Int64", + "Int32", + "UInt8", + "Float32", + "Float64", + "Bool" + ); + public AbstractJuliaCodegen() { super(); @@ -549,4 +569,28 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen { return super.addMustacheLambdas() .put("escapeDollar", new EscapeChar("(?