From ba8546189a68c1efb49e7a90d7584af5d1a8932a Mon Sep 17 00:00:00 2001 From: hhomar Date: Tue, 7 Nov 2023 07:16:41 +0000 Subject: [PATCH] fix(java): generate correct enum constructor when string format is uri (#16929) Before: COM_V1_SCHEMA_JSON("https://example.com/v1/schema.json") After: COM_V1_SCHEMA_JSON(URI.create("https://example.com/v1/schema.json"), --- .../org/openapitools/codegen/languages/AbstractJavaCodegen.java | 2 ++ .../org/openapitools/codegen/java/AbstractJavaCodegenTest.java | 1 + 2 files changed, 3 insertions(+) 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 e0f94fea192..62b8bda30c7 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 @@ -1734,6 +1734,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code } else if ("BigDecimal".equals(datatype)) { // use BigDecimal String constructor return "new BigDecimal(\"" + value + "\")"; + } else if ("URI".equals(datatype)) { + return "URI.create(\"" + escapeText(value) + "\")"; } else { return "\"" + escapeText(value) + "\""; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index 56be46d46f6..31c97e6c65f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -332,6 +332,7 @@ public class AbstractJavaCodegenTest { Assert.assertEquals(codegen.toEnumValue("42", "Double"), "42"); Assert.assertEquals(codegen.toEnumValue("1337", "Long"), "1337l"); Assert.assertEquals(codegen.toEnumValue("3.14", "Float"), "3.14f"); + Assert.assertEquals(codegen.toEnumValue("schema.json", "URI"), "URI.create(\"schema.json\")"); } @Test