diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 0335a09d6962..3310eaf09934 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -2332,6 +2332,8 @@ public String toEnumValue(String value, String datatype) { return "new BigDecimal(\"" + value + "\")"; } else if ("URI".equals(datatype)) { return "URI.create(\"" + escapeText(value) + "\")"; + } else if ("UUID".equals(datatype)) { + return "UUID.fromString(\"" + escapeText(value) + "\")"; } else { return "\"" + escapeText(value) + "\""; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index b2a40441c1a6..041953da7680 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -3125,6 +3125,16 @@ public void contractWithResolvedInnerEnumContainsEnumConverter() throws IOExcept .assertMethod("ponyTypeConverter"); } + @Test + public void contractWithUuidEnumShouldGenerateValidEnum() throws IOException { + Map output = generateFromContract("src/test/resources/3_0/enum_uuid.yaml", SPRING_BOOT); + + JavaFileAssert.assertThat(output.get("ExampleUuidEnum.java")) + .fileContains("UUID.fromString(\"d6a8f2b0-1c34-4e56-a789-0abcdef12345\")") + .fileContains("UUID.fromString(\"e7b9c3d1-2d45-5f67-b890-1bcdef023456\")") + .fileContains("private final UUID value"); + } + @Test public void shouldUseTheSameTagNameForTheInterfaceAndTheMethod_issue11570() throws IOException { final Map output = generateFromContract( diff --git a/modules/openapi-generator/src/test/resources/3_0/enum_uuid.yaml b/modules/openapi-generator/src/test/resources/3_0/enum_uuid.yaml index 87f46bd3bd9e..254729a94afd 100644 --- a/modules/openapi-generator/src/test/resources/3_0/enum_uuid.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/enum_uuid.yaml @@ -30,4 +30,3 @@ components: enum: - "d6a8f2b0-1c34-4e56-a789-0abcdef12345" - "e7b9c3d1-2d45-5f67-b890-1bcdef023456" -