Skip to content

Commit eab26d4

Browse files
authored
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
1 parent f8766d5 commit eab26d4

9 files changed

Lines changed: 10 additions & 7 deletions

File tree

docs/generators/scala-finch.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
1616
| Type/Alias | Imports |
1717
| ---------- | ------- |
1818
|ArrayBuffer|scala.collection.mutable.ArrayBuffer|
19-
|BigDecimal|java.math.BigDecimal|
2019
|Date|java.util.Date|
2120
|DateTime|java.time.LocalDateTime|
2221
|File|java.io.File|

docs/generators/scalatra.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
2626
| ---------- | ------- |
2727
|Array|java.util.List|
2828
|ArrayList|java.util.ArrayList|
29-
|BigDecimal|java.math.BigDecimal|
3029
|Date|java.util.Date|
3130
|DateTime|org.joda.time.DateTime|
3231
|File|java.io.File|

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ public ScalaAkkaClientCodegen() {
133133
typeMapping.put("object", "Any");
134134
typeMapping.put("file", "File");
135135
typeMapping.put("binary", "File");
136-
typeMapping.put("number", "Double");
136+
typeMapping.put("number", "BigDecimal");
137+
typeMapping.put("decimal", "BigDecimal");
137138

138139
instantiationTypes.put("array", "ListBuffer");
139140
instantiationTypes.put("map", "Map");

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ public ScalaAkkaHttpServerCodegen() {
137137
typeMapping.put("file", "File");
138138
typeMapping.put("binary", "File");
139139
typeMapping.put("number", "Double");
140+
typeMapping.put("decimal", "BigDecimal");
140141

141142
instantiationTypes.put("array", "ListBuffer");
142143
instantiationTypes.put("map", "Map");

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,11 @@ public ScalaFinchServerCodegen() {
113113
typeMapping.put("string", "String");
114114
typeMapping.put("boolean", "Boolean");
115115
typeMapping.put("integer", "Int");
116-
typeMapping.put("float", "Float");
117116
typeMapping.put("long", "Long");
117+
typeMapping.put("float", "Float");
118118
typeMapping.put("double", "Double");
119119
typeMapping.put("number", "BigDecimal");
120+
typeMapping.put("decimal", "BigDecimal");
120121
typeMapping.put("date-time", "ZonedDateTime");
121122
typeMapping.put("date", "LocalDateTime");
122123
typeMapping.put("file", "File");
@@ -177,7 +178,6 @@ public ScalaFinchServerCodegen() {
177178
instantiationTypes.put("map", "HashMap");
178179

179180
importMapping = new HashMap<String, String>();
180-
importMapping.put("BigDecimal", "java.math.BigDecimal");
181181
importMapping.put("UUID", "java.util.UUID");
182182
importMapping.put("URI", "java.net.URI");
183183
importMapping.put("File", "java.io.File");

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ public ScalaPlayFrameworkServerCodegen() {
9797
typeMapping.put("ByteArray", "Array[Byte]");
9898
typeMapping.put("object", "JsObject");
9999
typeMapping.put("file", "TemporaryFile");
100+
typeMapping.put("number", "BigDecimal");
101+
typeMapping.put("decimal", "BigDecimal");
100102

101103
importMapping.put("OffsetDateTime", "java.time.OffsetDateTime");
102104
importMapping.put("LocalDate", "java.time.LocalDate");
103-
importMapping.remove("BigDecimal");
104105
importMapping.put("TemporaryFile", "play.api.libs.Files.TemporaryFile");
105106

106107
cliOptions.removeIf(opt -> DATE_LIBRARY.equals(opt.getOpt()));

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ public ScalaSttpClientCodegen() {
140140
typeMapping.put("file", "File");
141141
typeMapping.put("binary", "File");
142142
typeMapping.put("number", "Double");
143+
typeMapping.put("decimal", "BigDecimal");
143144

144145
instantiationTypes.put("array", "ListBuffer");
145146
instantiationTypes.put("map", "Map");

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public ScalatraServerCodegen() {
9393
typeMapping.put("file", "File");
9494
typeMapping.put("binary", "File");
9595
typeMapping.put("number", "Double");
96+
typeMapping.put("decimal", "BigDecimal");
9697

9798
additionalProperties.put("appName", "OpenAPI Sample");
9899
additionalProperties.put("appDescription", "A sample openapi server");
@@ -118,7 +119,6 @@ public ScalatraServerCodegen() {
118119
supportingFiles.add(new SupportingFile("sbt", "", "sbt"));
119120

120121
importMapping = new HashMap<String, String>();
121-
importMapping.put("BigDecimal", "java.math.BigDecimal");
122122
importMapping.put("UUID", "java.util.UUID");
123123
importMapping.put("URI", "java.net.URI");
124124
importMapping.put("File", "java.io.File");

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public ScalazClientCodegen() {
121121
typeMapping.put("file", "File");
122122
typeMapping.put("binary", "File");
123123
typeMapping.put("number", "BigDecimal");
124+
typeMapping.put("decimal", "BigDecimal");
124125
typeMapping.put("date-time", "DateTime");
125126
typeMapping.put("date", "DateTime");
126127

0 commit comments

Comments
 (0)