Skip to content

Commit 239d68d

Browse files
bensimpson-chwing328
authored andcommitted
[Java][okhttp-gson] fix failure to deserialize floats (#3846)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam} * fix to bug #3157 * update samples
1 parent 5fd15b8 commit 239d68d

147 files changed

Lines changed: 1714 additions & 124 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/openapi-generator/src/main/resources/Java/modelInnerEnum.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
@Override
5858
public {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} read(final JsonReader jsonReader) throws IOException {
59-
{{^isNumber}}{{{dataType}}}{{/isNumber}}{{#isNumber}}String{{/isNumber}} value = jsonReader.{{#isNumber}}nextString(){{/isNumber}}{{#isInteger}}nextInt(){{/isInteger}}{{^isNumber}}{{^isInteger}}next{{{dataType}}}(){{/isInteger}}{{/isNumber}};
59+
{{^isNumber}}{{{dataType}}}{{/isNumber}}{{#isNumber}}String{{/isNumber}} value = {{#isFloat}}(float){{/isFloat}} jsonReader.{{#isNumber}}nextString(){{/isNumber}}{{#isInteger}}nextInt(){{/isInteger}}{{^isNumber}}{{^isInteger}}{{#isFloat}}nextDouble{{/isFloat}}{{^isFloat}}next{{{dataType}}}{{/isFloat}}(){{/isInteger}}{{/isNumber}};
6060
return {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.fromValue({{#isNumber}}new BigDecimal({{/isNumber}}value{{#isNumber}}){{/isNumber}});
6161
}
6262
}

modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1783,6 +1783,7 @@ definitions:
17831783
required:
17841784
- string_item
17851785
- number_item
1786+
- float_item
17861787
- integer_item
17871788
- bool_item
17881789
- array_item
@@ -1793,6 +1794,10 @@ definitions:
17931794
number_item:
17941795
type: number
17951796
example: 1.234
1797+
float_item:
1798+
type: number
1799+
example: 1.234
1800+
format: float
17961801
integer_item:
17971802
type: integer
17981803
example: -2

samples/client/petstore/csharp-netcore/OpenAPIClient/docs/TypeHolderExample.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Name | Type | Description | Notes
55
------------ | ------------- | ------------- | -------------
66
**StringItem** | **string** | |
77
**NumberItem** | **decimal** | |
8+
**FloatItem** | **float** | |
89
**IntegerItem** | **int** | |
910
**BoolItem** | **bool** | |
1011
**ArrayItem** | **List<int>** | |

samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/TypeHolderExample.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ protected TypeHolderExample() { }
4242
/// </summary>
4343
/// <param name="stringItem">stringItem (required).</param>
4444
/// <param name="numberItem">numberItem (required).</param>
45+
/// <param name="floatItem">floatItem (required).</param>
4546
/// <param name="integerItem">integerItem (required).</param>
4647
/// <param name="boolItem">boolItem (required).</param>
4748
/// <param name="arrayItem">arrayItem (required).</param>
48-
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
49+
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), float floatItem = default(float), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
4950
{
5051
// to ensure "stringItem" is required (not null)
5152
if (stringItem == null)
@@ -67,6 +68,16 @@ protected TypeHolderExample() { }
6768
this.NumberItem = numberItem;
6869
}
6970

71+
// to ensure "floatItem" is required (not null)
72+
if (floatItem == null)
73+
{
74+
throw new InvalidDataException("floatItem is a required property for TypeHolderExample and cannot be null");
75+
}
76+
else
77+
{
78+
this.FloatItem = floatItem;
79+
}
80+
7081
// to ensure "integerItem" is required (not null)
7182
if (integerItem == null)
7283
{
@@ -111,6 +122,12 @@ protected TypeHolderExample() { }
111122
[DataMember(Name="number_item", EmitDefaultValue=false)]
112123
public decimal NumberItem { get; set; }
113124

125+
/// <summary>
126+
/// Gets or Sets FloatItem
127+
/// </summary>
128+
[DataMember(Name="float_item", EmitDefaultValue=false)]
129+
public float FloatItem { get; set; }
130+
114131
/// <summary>
115132
/// Gets or Sets IntegerItem
116133
/// </summary>
@@ -139,6 +156,7 @@ public override string ToString()
139156
sb.Append("class TypeHolderExample {\n");
140157
sb.Append(" StringItem: ").Append(StringItem).Append("\n");
141158
sb.Append(" NumberItem: ").Append(NumberItem).Append("\n");
159+
sb.Append(" FloatItem: ").Append(FloatItem).Append("\n");
142160
sb.Append(" IntegerItem: ").Append(IntegerItem).Append("\n");
143161
sb.Append(" BoolItem: ").Append(BoolItem).Append("\n");
144162
sb.Append(" ArrayItem: ").Append(ArrayItem).Append("\n");
@@ -187,6 +205,7 @@ public override int GetHashCode()
187205
if (this.StringItem != null)
188206
hashCode = hashCode * 59 + this.StringItem.GetHashCode();
189207
hashCode = hashCode * 59 + this.NumberItem.GetHashCode();
208+
hashCode = hashCode * 59 + this.FloatItem.GetHashCode();
190209
hashCode = hashCode * 59 + this.IntegerItem.GetHashCode();
191210
hashCode = hashCode * 59 + this.BoolItem.GetHashCode();
192211
if (this.ArrayItem != null)

samples/client/petstore/csharp-netcore/OpenAPIClientCore/docs/TypeHolderExample.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Name | Type | Description | Notes
55
------------ | ------------- | ------------- | -------------
66
**StringItem** | **string** | |
77
**NumberItem** | **decimal** | |
8+
**FloatItem** | **float** | |
89
**IntegerItem** | **int** | |
910
**BoolItem** | **bool** | |
1011
**ArrayItem** | **List&lt;int&gt;** | |

samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/TypeHolderExample.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ protected TypeHolderExample() { }
4242
/// </summary>
4343
/// <param name="stringItem">stringItem (required).</param>
4444
/// <param name="numberItem">numberItem (required).</param>
45+
/// <param name="floatItem">floatItem (required).</param>
4546
/// <param name="integerItem">integerItem (required).</param>
4647
/// <param name="boolItem">boolItem (required).</param>
4748
/// <param name="arrayItem">arrayItem (required).</param>
48-
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
49+
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), float floatItem = default(float), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
4950
{
5051
// to ensure "stringItem" is required (not null)
5152
if (stringItem == null)
@@ -67,6 +68,16 @@ protected TypeHolderExample() { }
6768
this.NumberItem = numberItem;
6869
}
6970

71+
// to ensure "floatItem" is required (not null)
72+
if (floatItem == null)
73+
{
74+
throw new InvalidDataException("floatItem is a required property for TypeHolderExample and cannot be null");
75+
}
76+
else
77+
{
78+
this.FloatItem = floatItem;
79+
}
80+
7081
// to ensure "integerItem" is required (not null)
7182
if (integerItem == null)
7283
{
@@ -111,6 +122,12 @@ protected TypeHolderExample() { }
111122
[DataMember(Name="number_item", EmitDefaultValue=false)]
112123
public decimal NumberItem { get; set; }
113124

125+
/// <summary>
126+
/// Gets or Sets FloatItem
127+
/// </summary>
128+
[DataMember(Name="float_item", EmitDefaultValue=false)]
129+
public float FloatItem { get; set; }
130+
114131
/// <summary>
115132
/// Gets or Sets IntegerItem
116133
/// </summary>
@@ -139,6 +156,7 @@ public override string ToString()
139156
sb.Append("class TypeHolderExample {\n");
140157
sb.Append(" StringItem: ").Append(StringItem).Append("\n");
141158
sb.Append(" NumberItem: ").Append(NumberItem).Append("\n");
159+
sb.Append(" FloatItem: ").Append(FloatItem).Append("\n");
142160
sb.Append(" IntegerItem: ").Append(IntegerItem).Append("\n");
143161
sb.Append(" BoolItem: ").Append(BoolItem).Append("\n");
144162
sb.Append(" ArrayItem: ").Append(ArrayItem).Append("\n");
@@ -187,6 +205,7 @@ public override int GetHashCode()
187205
if (this.StringItem != null)
188206
hashCode = hashCode * 59 + this.StringItem.GetHashCode();
189207
hashCode = hashCode * 59 + this.NumberItem.GetHashCode();
208+
hashCode = hashCode * 59 + this.FloatItem.GetHashCode();
190209
hashCode = hashCode * 59 + this.IntegerItem.GetHashCode();
191210
hashCode = hashCode * 59 + this.BoolItem.GetHashCode();
192211
if (this.ArrayItem != null)

samples/client/petstore/csharp/OpenAPIClient/docs/TypeHolderExample.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**StringItem** | **string** | |
99
**NumberItem** | **decimal** | |
10+
**FloatItem** | **float** | |
1011
**IntegerItem** | **int** | |
1112
**BoolItem** | **bool** | |
1213
**ArrayItem** | **List&lt;int&gt;** | |

samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/TypeHolderExample.cs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ protected TypeHolderExample() { }
4040
/// </summary>
4141
/// <param name="stringItem">stringItem (required).</param>
4242
/// <param name="numberItem">numberItem (required).</param>
43+
/// <param name="floatItem">floatItem (required).</param>
4344
/// <param name="integerItem">integerItem (required).</param>
4445
/// <param name="boolItem">boolItem (required).</param>
4546
/// <param name="arrayItem">arrayItem (required).</param>
46-
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
47+
public TypeHolderExample(string stringItem = default(string), decimal numberItem = default(decimal), float floatItem = default(float), int integerItem = default(int), bool boolItem = default(bool), List<int> arrayItem = default(List<int>))
4748
{
4849
// to ensure "stringItem" is required (not null)
4950
if (stringItem == null)
@@ -65,6 +66,16 @@ protected TypeHolderExample() { }
6566
this.NumberItem = numberItem;
6667
}
6768

69+
// to ensure "floatItem" is required (not null)
70+
if (floatItem == null)
71+
{
72+
throw new InvalidDataException("floatItem is a required property for TypeHolderExample and cannot be null");
73+
}
74+
else
75+
{
76+
this.FloatItem = floatItem;
77+
}
78+
6879
// to ensure "integerItem" is required (not null)
6980
if (integerItem == null)
7081
{
@@ -109,6 +120,12 @@ protected TypeHolderExample() { }
109120
[DataMember(Name="number_item", EmitDefaultValue=false)]
110121
public decimal NumberItem { get; set; }
111122

123+
/// <summary>
124+
/// Gets or Sets FloatItem
125+
/// </summary>
126+
[DataMember(Name="float_item", EmitDefaultValue=false)]
127+
public float FloatItem { get; set; }
128+
112129
/// <summary>
113130
/// Gets or Sets IntegerItem
114131
/// </summary>
@@ -137,6 +154,7 @@ public override string ToString()
137154
sb.Append("class TypeHolderExample {\n");
138155
sb.Append(" StringItem: ").Append(StringItem).Append("\n");
139156
sb.Append(" NumberItem: ").Append(NumberItem).Append("\n");
157+
sb.Append(" FloatItem: ").Append(FloatItem).Append("\n");
140158
sb.Append(" IntegerItem: ").Append(IntegerItem).Append("\n");
141159
sb.Append(" BoolItem: ").Append(BoolItem).Append("\n");
142160
sb.Append(" ArrayItem: ").Append(ArrayItem).Append("\n");
@@ -184,6 +202,11 @@ public bool Equals(TypeHolderExample input)
184202
(this.NumberItem != null &&
185203
this.NumberItem.Equals(input.NumberItem))
186204
) &&
205+
(
206+
this.FloatItem == input.FloatItem ||
207+
(this.FloatItem != null &&
208+
this.FloatItem.Equals(input.FloatItem))
209+
) &&
187210
(
188211
this.IntegerItem == input.IntegerItem ||
189212
(this.IntegerItem != null &&
@@ -215,6 +238,8 @@ public override int GetHashCode()
215238
hashCode = hashCode * 59 + this.StringItem.GetHashCode();
216239
if (this.NumberItem != null)
217240
hashCode = hashCode * 59 + this.NumberItem.GetHashCode();
241+
if (this.FloatItem != null)
242+
hashCode = hashCode * 59 + this.FloatItem.GetHashCode();
218243
if (this.IntegerItem != null)
219244
hashCode = hashCode * 59 + this.IntegerItem.GetHashCode();
220245
if (this.BoolItem != null)

samples/client/petstore/elixir/lib/openapi_petstore/model/type_holder_example.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ defmodule OpenapiPetstore.Model.TypeHolderExample do
1111
defstruct [
1212
:"string_item",
1313
:"number_item",
14+
:"float_item",
1415
:"integer_item",
1516
:"bool_item",
1617
:"array_item"
@@ -19,6 +20,7 @@ defmodule OpenapiPetstore.Model.TypeHolderExample do
1920
@type t :: %__MODULE__{
2021
:"string_item" => String.t,
2122
:"number_item" => float(),
23+
:"float_item" => float(),
2224
:"integer_item" => integer(),
2325
:"bool_item" => boolean(),
2426
:"array_item" => [integer()]

samples/client/petstore/go/go-petstore-withXml/api/openapi.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,6 +1869,10 @@ components:
18691869
number_item:
18701870
example: 1.234
18711871
type: number
1872+
float_item:
1873+
example: 1.234
1874+
format: float
1875+
type: number
18721876
integer_item:
18731877
example: -2
18741878
type: integer
@@ -1887,6 +1891,7 @@ components:
18871891
required:
18881892
- array_item
18891893
- bool_item
1894+
- float_item
18901895
- integer_item
18911896
- number_item
18921897
- string_item

0 commit comments

Comments
 (0)