Skip to content

Commit 62328b6

Browse files
renatomamelirenato-tvwing328
authored
fix(java-spring): handle UUID type in enum values generation (#23589)
Co-authored-by: Renato Mameli <renato.mameli@teamviewer.com> Co-authored-by: William Cheng <wing328hk@gmail.com>
1 parent a63ff87 commit 62328b6

3 files changed

Lines changed: 12 additions & 1 deletion

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2332,6 +2332,8 @@ public String toEnumValue(String value, String datatype) {
23322332
return "new BigDecimal(\"" + value + "\")";
23332333
} else if ("URI".equals(datatype)) {
23342334
return "URI.create(\"" + escapeText(value) + "\")";
2335+
} else if ("UUID".equals(datatype)) {
2336+
return "UUID.fromString(\"" + escapeText(value) + "\")";
23352337
} else {
23362338
return "\"" + escapeText(value) + "\"";
23372339
}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3125,6 +3125,16 @@ public void contractWithResolvedInnerEnumContainsEnumConverter() throws IOExcept
31253125
.assertMethod("ponyTypeConverter");
31263126
}
31273127

3128+
@Test
3129+
public void contractWithUuidEnumShouldGenerateValidEnum() throws IOException {
3130+
Map<String, File> output = generateFromContract("src/test/resources/3_0/enum_uuid.yaml", SPRING_BOOT);
3131+
3132+
JavaFileAssert.assertThat(output.get("ExampleUuidEnum.java"))
3133+
.fileContains("UUID.fromString(\"d6a8f2b0-1c34-4e56-a789-0abcdef12345\")")
3134+
.fileContains("UUID.fromString(\"e7b9c3d1-2d45-5f67-b890-1bcdef023456\")")
3135+
.fileContains("private final UUID value");
3136+
}
3137+
31283138
@Test
31293139
public void shouldUseTheSameTagNameForTheInterfaceAndTheMethod_issue11570() throws IOException {
31303140
final Map<String, File> output = generateFromContract(

modules/openapi-generator/src/test/resources/3_0/enum_uuid.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,3 @@ components:
3030
enum:
3131
- "d6a8f2b0-1c34-4e56-a789-0abcdef12345"
3232
- "e7b9c3d1-2d45-5f67-b890-1bcdef023456"
33-

0 commit comments

Comments
 (0)