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"),
This commit is contained in:
hhomar 2023-11-07 07:16:41 +00:00 committed by GitHub
parent c301004b7e
commit ba8546189a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 0 deletions

View File

@ -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) + "\"";
}

View File

@ -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