From eab26d493b6cbcc0dfe4db58325a67489510e665 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Tue, 10 Nov 2020 11:29:50 +0800 Subject: [PATCH] Better decimal support in Scala generators (#7876) * fix decimal mapping in scala generators * add mapping for decimal, number in scala generators * update doc * use scala.math.BigDecimal --- docs/generators/scala-finch.md | 1 - docs/generators/scalatra.md | 1 - .../codegen/languages/ScalaAkkaClientCodegen.java | 3 ++- .../codegen/languages/ScalaAkkaHttpServerCodegen.java | 1 + .../codegen/languages/ScalaFinchServerCodegen.java | 4 ++-- .../codegen/languages/ScalaPlayFrameworkServerCodegen.java | 3 ++- .../codegen/languages/ScalaSttpClientCodegen.java | 1 + .../openapitools/codegen/languages/ScalatraServerCodegen.java | 2 +- .../openapitools/codegen/languages/ScalazClientCodegen.java | 1 + 9 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/generators/scala-finch.md b/docs/generators/scala-finch.md index fcaa5a62c26c..5d2bdded42a0 100644 --- a/docs/generators/scala-finch.md +++ b/docs/generators/scala-finch.md @@ -16,7 +16,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl | Type/Alias | Imports | | ---------- | ------- | |ArrayBuffer|scala.collection.mutable.ArrayBuffer| -|BigDecimal|java.math.BigDecimal| |Date|java.util.Date| |DateTime|java.time.LocalDateTime| |File|java.io.File| diff --git a/docs/generators/scalatra.md b/docs/generators/scalatra.md index 2c8f76615793..956858c4090e 100644 --- a/docs/generators/scalatra.md +++ b/docs/generators/scalatra.md @@ -26,7 +26,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl | ---------- | ------- | |Array|java.util.List| |ArrayList|java.util.ArrayList| -|BigDecimal|java.math.BigDecimal| |Date|java.util.Date| |DateTime|org.joda.time.DateTime| |File|java.io.File| diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java index a47a6cc611ec..138e9bf9c1d8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java @@ -133,7 +133,8 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code typeMapping.put("object", "Any"); typeMapping.put("file", "File"); typeMapping.put("binary", "File"); - typeMapping.put("number", "Double"); + typeMapping.put("number", "BigDecimal"); + typeMapping.put("decimal", "BigDecimal"); instantiationTypes.put("array", "ListBuffer"); instantiationTypes.put("map", "Map"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java index 0a880a071aa0..d7607e44a290 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java @@ -137,6 +137,7 @@ public class ScalaAkkaHttpServerCodegen extends AbstractScalaCodegen implements typeMapping.put("file", "File"); typeMapping.put("binary", "File"); typeMapping.put("number", "Double"); + typeMapping.put("decimal", "BigDecimal"); instantiationTypes.put("array", "ListBuffer"); instantiationTypes.put("map", "Map"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java index 22ba6f10905c..b899a00390b5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java @@ -113,10 +113,11 @@ public class ScalaFinchServerCodegen extends DefaultCodegen implements CodegenCo typeMapping.put("string", "String"); typeMapping.put("boolean", "Boolean"); typeMapping.put("integer", "Int"); - typeMapping.put("float", "Float"); typeMapping.put("long", "Long"); + typeMapping.put("float", "Float"); typeMapping.put("double", "Double"); typeMapping.put("number", "BigDecimal"); + typeMapping.put("decimal", "BigDecimal"); typeMapping.put("date-time", "ZonedDateTime"); typeMapping.put("date", "LocalDateTime"); typeMapping.put("file", "File"); @@ -177,7 +178,6 @@ public class ScalaFinchServerCodegen extends DefaultCodegen implements CodegenCo instantiationTypes.put("map", "HashMap"); importMapping = new HashMap(); - importMapping.put("BigDecimal", "java.math.BigDecimal"); importMapping.put("UUID", "java.util.UUID"); importMapping.put("URI", "java.net.URI"); importMapping.put("File", "java.io.File"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java index 10c4b005c2eb..cb5f63bf55ad 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java @@ -97,10 +97,11 @@ public class ScalaPlayFrameworkServerCodegen extends AbstractScalaCodegen implem typeMapping.put("ByteArray", "Array[Byte]"); typeMapping.put("object", "JsObject"); typeMapping.put("file", "TemporaryFile"); + typeMapping.put("number", "BigDecimal"); + typeMapping.put("decimal", "BigDecimal"); importMapping.put("OffsetDateTime", "java.time.OffsetDateTime"); importMapping.put("LocalDate", "java.time.LocalDate"); - importMapping.remove("BigDecimal"); importMapping.put("TemporaryFile", "play.api.libs.Files.TemporaryFile"); cliOptions.removeIf(opt -> DATE_LIBRARY.equals(opt.getOpt())); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java index 477c060a4df6..4e26928038e1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java @@ -140,6 +140,7 @@ public class ScalaSttpClientCodegen extends AbstractScalaCodegen implements Code typeMapping.put("file", "File"); typeMapping.put("binary", "File"); typeMapping.put("number", "Double"); + typeMapping.put("decimal", "BigDecimal"); instantiationTypes.put("array", "ListBuffer"); instantiationTypes.put("map", "Map"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java index 0188a98bc967..8cd1e3cc0b6a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java @@ -93,6 +93,7 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg typeMapping.put("file", "File"); typeMapping.put("binary", "File"); typeMapping.put("number", "Double"); + typeMapping.put("decimal", "BigDecimal"); additionalProperties.put("appName", "OpenAPI Sample"); additionalProperties.put("appDescription", "A sample openapi server"); @@ -118,7 +119,6 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg supportingFiles.add(new SupportingFile("sbt", "", "sbt")); importMapping = new HashMap(); - importMapping.put("BigDecimal", "java.math.BigDecimal"); importMapping.put("UUID", "java.util.UUID"); importMapping.put("URI", "java.net.URI"); importMapping.put("File", "java.io.File"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java index 036970066f5b..8ba9e1f8c454 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java @@ -121,6 +121,7 @@ public class ScalazClientCodegen extends AbstractScalaCodegen implements Codegen typeMapping.put("file", "File"); typeMapping.put("binary", "File"); typeMapping.put("number", "BigDecimal"); + typeMapping.put("decimal", "BigDecimal"); typeMapping.put("date-time", "DateTime"); typeMapping.put("date", "DateTime");