File tree 2 files changed +29
-1
lines changed
main/java/com/mindee/parsing/generated
test/java/com/mindee/product/generated
2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -32,8 +32,19 @@ public StringField asStringField() {
32
32
* Represent the object as a standard {@link AmountField}.
33
33
*/
34
34
public AmountField asAmountField () {
35
+ Double value ;
36
+ Object rawValue = this .get ("value" );
37
+ if (rawValue instanceof Integer ) {
38
+ value = ((Integer ) rawValue ).doubleValue ();
39
+ }
40
+ else if (rawValue instanceof Double ) {
41
+ value = (Double ) rawValue ;
42
+ }
43
+ else {
44
+ throw new ClassCastException ("Cannot cast " + rawValue + " to Double" );
45
+ }
35
46
return new AmountField (
36
- ( Double ) this . get ( " value" ) ,
47
+ value ,
37
48
this .getConfidence (),
38
49
this .getPolygon (),
39
50
this .getPageId ()
Original file line number Diff line number Diff line change @@ -243,4 +243,21 @@ else if (featureValue.isList()) {
243
243
}
244
244
}
245
245
}
246
+
247
+ @ Test
248
+ void whenAmountDeserialized_mustCastToDouble () {
249
+ GeneratedObject intObject = new GeneratedObject ();
250
+ intObject .put ("value" , 5 );
251
+ AmountField fieldFromInt = intObject .asAmountField ();
252
+ Assertions .assertEquals (5.0 , fieldFromInt .getValue ());
253
+
254
+ GeneratedObject doubleObject = new GeneratedObject ();
255
+ doubleObject .put ("value" , 5.0 );
256
+ AmountField fieldFromDouble = doubleObject .asAmountField ();
257
+ Assertions .assertEquals (5.0 , fieldFromDouble .getValue ());
258
+
259
+ GeneratedObject badStringObject = new GeneratedObject ();
260
+ doubleObject .put ("value" , "I will fail miserably" );
261
+ Assertions .assertThrows (ClassCastException .class , badStringObject ::asAmountField );
262
+ }
246
263
}
You can’t perform that action at this time.
0 commit comments