From ca6c63f7e50ba14ed2686abb925a2c7f663d46f6 Mon Sep 17 00:00:00 2001 From: bgong-mdsol Date: Wed, 25 Nov 2020 04:54:49 -0500 Subject: [PATCH] fix java incompatible types error for number (#8018) --- .../codegen/languages/AbstractJavaCodegen.java | 4 +++- .../codegen/java/AbstractJavaCodegenTest.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) 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 f82237c6137..d08f93fe3ff 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 @@ -883,8 +883,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code if (schema.getDefault() != null) { if (SchemaTypeUtil.FLOAT_FORMAT.equals(schema.getFormat())) { return schema.getDefault().toString() + "f"; - } else { + } else if (SchemaTypeUtil.DOUBLE_FORMAT.equals(schema.getFormat())) { return schema.getDefault().toString() + "d"; + } else { + return "new BigDecimal(\"" + schema.getDefault().toString() + "\")"; } } return null; 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 527482fcf78..4f8b9807378 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 @@ -448,6 +448,18 @@ public class AbstractJavaCodegenTest { dateSchema.setDefault(date); defaultValue = codegen.toDefaultValue(dateSchema); Assert.assertEquals(defaultLocalDate, LocalDate.parse(defaultValue)); + + // Test default value for number without format + NumberSchema numberSchema = new NumberSchema(); + Double doubleValue = 100.0; + numberSchema.setDefault(doubleValue); + defaultValue = codegen.toDefaultValue(numberSchema); + Assert.assertEquals(defaultValue, "new BigDecimal(\"" + doubleValue.toString() + "\")"); + + // Test default value for number with format set to double + numberSchema.setFormat("double"); + defaultValue = codegen.toDefaultValue(numberSchema); + Assert.assertEquals(defaultValue, doubleValue + "d"); } @Test