Skip to content

Commit 34907b3

Browse files
committed
Issue #67 work in progress.
1 parent 8c81eff commit 34907b3

17 files changed

+239
-245
lines changed

compiler/src/main/java/org/hisrc/jsonix/compilation/jsonschema/JsonSchemaMappingCompiler.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.ClassInfoProducer;
99
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.CreateTypeInfoProducer;
1010
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.EnumLeafInfoProducer;
11+
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.TypeInfoProducer;
1112
import org.hisrc.jsonix.definition.Mapping;
1213
import org.hisrc.jsonix.definition.Module;
1314
import org.hisrc.jsonix.definition.Modules;
@@ -120,7 +121,11 @@ private void addClassInfoSchemas(final JsonSchemaBuilder schema) {
120121

121122
public <M extends MOriginated<O>, O> JsonSchemaBuilder createTypeInfoSchemaRef(M originated,
122123
MTypeInfo<T, C> typeInfo) {
123-
return typeInfo.acceptTypeInfoVisitor(new CreateTypeInfoProducer<T, C, O>(originated))
124-
.createTypeInfoSchemaRef(this);
124+
return getTypeInfoProducer(originated, typeInfo).createTypeInfoSchemaRef(this);
125+
}
126+
127+
public <M extends MOriginated<O>, O> TypeInfoProducer<T, C> getTypeInfoProducer(M originated,
128+
MTypeInfo<T, C> typeInfo) {
129+
return typeInfo.acceptTypeInfoVisitor(new CreateTypeInfoProducer<T, C, O>(originated));
125130
}
126131
}

compiler/src/main/java/org/hisrc/jsonix/compilation/jsonschema/JsonSchemaPropertyInfoProducerVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,6 @@ private JsonSchemaBuilder createPossiblyCollectionTypeSchema(MPropertyInfo<T, C>
305305
}
306306

307307
private <M extends MOriginated<O>, O> JsonSchemaBuilder createTypeSchema(M originated, MTypeInfo<T, C> typeInfo) {
308-
return mappingCompiler.createTypeInfoSchemaRef(originated, typeInfo);
308+
return mappingCompiler.getTypeInfoProducer(originated, typeInfo).createTypeInfoSchemaRef(mappingCompiler);
309309
}
310310
}

compiler/src/main/java/org/hisrc/jsonix/compilation/jsonschema/typeinfo/BuiltinLeafInfoProducer.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.hisrc.jsonix.compilation.jsonschema.typeinfo;
22

33
import javax.json.JsonValue;
4+
import javax.xml.datatype.DatatypeConfigurationException;
5+
import javax.xml.datatype.DatatypeFactory;
46
import javax.xml.namespace.QName;
57

68
import org.apache.commons.lang3.Validate;
@@ -15,6 +17,7 @@ public class BuiltinLeafInfoProducer<T, C extends T, O> implements TypeInfoProdu
1517

1618
private final String jsonSchemaId;
1719
private final QName qualifiedName;
20+
protected final DatatypeFactory datatypeFactory;
1821

1922
public BuiltinLeafInfoProducer(QName qualifiedName) {
2023
this(XmlSchemaJsonSchemaConstants.SCHEMA_ID, Validate.notNull(qualifiedName));
@@ -25,6 +28,11 @@ public BuiltinLeafInfoProducer(String jsonShemaId, QName qualifiedName) {
2528
Validate.notNull(jsonShemaId);
2629
this.jsonSchemaId = jsonShemaId;
2730
this.qualifiedName = qualifiedName;
31+
try {
32+
this.datatypeFactory = DatatypeFactory.newInstance();
33+
} catch (DatatypeConfigurationException dcex) {
34+
throw new ExceptionInInitializerError(dcex);
35+
}
2836
}
2937

3038
@Override
@@ -42,7 +50,7 @@ public JsonSchemaBuilder createTypeInfoSchemaRef(JsonSchemaMappingCompiler<T, C>
4250
public JsonValue createValue(JsonSchemaMappingCompiler<T, C> mappingCompiler, XmlString item) {
4351
return createValue(mappingCompiler, item.value);
4452
}
45-
53+
4654
@Override
4755
public JsonValue createValue(JsonSchemaMappingCompiler<T, C> mappingCompiler, String item) {
4856
return null;

compiler/src/main/java/org/hisrc/jsonix/compilation/jsonschema/typeinfo/CreateTypeInfoProducer.java

+22-32
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242

4343
import org.apache.commons.lang3.Validate;
4444
import org.hisrc.jsonix.compilation.jsonschema.JsonixJsonSchemaConstants;
45-
import org.hisrc.jsonix.compilation.jsonschema.XmlSchemaJsonSchemaConstants;
4645
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin.Base64BinaryTypeInfoProducer;
4746
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin.BooleanTypeInfoProducer;
4847
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin.DecimalTypeInfoProducer;
@@ -72,10 +71,6 @@
7271

7372
public class CreateTypeInfoProducer<T, C extends T, O> implements MTypeInfoVisitor<T, C, TypeInfoProducer<T, C>> {
7473

75-
private static final String IDREFS_TYPE_INFO_NAME = "IDREFS";
76-
private static final String IDREF_TYPE_INFO_NAME = "IDREF";
77-
private static final String ID_TYPE_INFO_NAME = "ID";
78-
7974
private Map<QName, TypeInfoProducer<T, C>> XSD_TYPE_MAPPING = new HashMap<QName, TypeInfoProducer<T, C>>();
8075
{
8176
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ANYTYPE,
@@ -101,65 +96,60 @@ public class CreateTypeInfoProducer<T, C extends T, O> implements MTypeInfoVisit
10196
new BuiltinLeafInfoProducer<T, C, O>(XmlSchemaConstants.IDREFS));
10297
XSD_TYPE_MAPPING.put(XmlSchemaConstants.IDREFS,
10398
new BuiltinLeafInfoProducer<T, C, O>(XmlSchemaConstants.IDREFS));
104-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ENTITY, new
105-
NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ENTITY));
106-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ENTITIES, new
107-
NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ENTITIES));
99+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ENTITY,
100+
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ENTITY));
101+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ENTITIES,
102+
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ENTITIES));
108103
XSD_TYPE_MAPPING.put(XmlSchemaConstants.NMTOKEN,
109-
new NormalizedStringTypeInfoProducer<T, C, O>( XmlSchemaConstants.NMTOKEN));
104+
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.NMTOKEN));
110105
XSD_TYPE_MAPPING.put(XmlSchemaConstants.NMTOKENS,
111106
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.NMTOKENS));
112107
XSD_TYPE_MAPPING.put(XmlSchemaConstants.BOOLEAN, new BooleanTypeInfoProducer<T, C, O>());
113108
XSD_TYPE_MAPPING.put(XmlSchemaConstants.BASE64BINARY, new Base64BinaryTypeInfoProducer<T, C, O>());
114109
XSD_TYPE_MAPPING.put(XmlSchemaConstants.HEXBINARY, new HexBinaryTypeInfoProducer<T, C, O>());
115-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.FLOAT,
116-
new DecimalTypeInfoProducer<T, C, O>( XmlSchemaConstants.FLOAT));
110+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.FLOAT, new DecimalTypeInfoProducer<T, C, O>(XmlSchemaConstants.FLOAT));
117111
XSD_TYPE_MAPPING.put(XmlSchemaConstants.DECIMAL,
118-
new DecimalTypeInfoProducer<T, C, O>( XmlSchemaConstants.DECIMAL));
112+
new DecimalTypeInfoProducer<T, C, O>(XmlSchemaConstants.DECIMAL));
119113
XSD_TYPE_MAPPING.put(XmlSchemaConstants.INTEGER,
120114
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.INTEGER));
121115
XSD_TYPE_MAPPING.put(XmlSchemaConstants.NONPOSITIVEINTEGER,
122-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.NONPOSITIVEINTEGER));
116+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.NONPOSITIVEINTEGER));
123117
XSD_TYPE_MAPPING.put(XmlSchemaConstants.NEGATIVEINTEGER,
124-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.NEGATIVEINTEGER));
125-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.LONG,
126-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.LONG));
127-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.INT,
128-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.INT));
129-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.SHORT,
130-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.SHORT));
131-
XSD_TYPE_MAPPING.put(XmlSchemaConstants.BYTE,
132-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.BYTE));
118+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.NEGATIVEINTEGER));
119+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.LONG, new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.LONG));
120+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.INT, new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.INT));
121+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.SHORT, new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.SHORT));
122+
XSD_TYPE_MAPPING.put(XmlSchemaConstants.BYTE, new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.BYTE));
133123
XSD_TYPE_MAPPING.put(XmlSchemaConstants.NONNEGATIVEINTEGER,
134124
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.NONNEGATIVEINTEGER));
135125
XSD_TYPE_MAPPING.put(XmlSchemaConstants.UNSIGNEDLONG,
136-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.UNSIGNEDLONG));
126+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.UNSIGNEDLONG));
137127
XSD_TYPE_MAPPING.put(XmlSchemaConstants.UNSIGNEDINT,
138-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.UNSIGNEDINT));
128+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.UNSIGNEDINT));
139129
XSD_TYPE_MAPPING.put(XmlSchemaConstants.UNSIGNEDSHORT,
140-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.UNSIGNEDSHORT));
130+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.UNSIGNEDSHORT));
141131
XSD_TYPE_MAPPING.put(XmlSchemaConstants.UNSIGNEDBYTE,
142-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.UNSIGNEDBYTE));
132+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.UNSIGNEDBYTE));
143133
XSD_TYPE_MAPPING.put(XmlSchemaConstants.POSITIVEINTEGER,
144-
new IntegerTypeInfoProducer<T, C, O>( XmlSchemaConstants.POSITIVEINTEGER));
134+
new IntegerTypeInfoProducer<T, C, O>(XmlSchemaConstants.POSITIVEINTEGER));
145135
XSD_TYPE_MAPPING.put(XmlSchemaConstants.DOUBLE,
146136
new DecimalTypeInfoProducer<T, C, O>(XmlSchemaConstants.DOUBLE));
147137
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ANYURI,
148-
new NormalizedStringTypeInfoProducer<T, C, O>( XmlSchemaConstants.ANYURI));
138+
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ANYURI));
149139
XSD_TYPE_MAPPING.put(XmlSchemaConstants.ANYURI,
150140
new NormalizedStringTypeInfoProducer<T, C, O>(XmlSchemaConstants.ANYURI));
151141
XSD_TYPE_MAPPING.put(XmlSchemaConstants.QNAME, new QNameTypeInfoProducer<T, C, O>());
152142
// XSD_TYPE_MAPPING.put(XmlSchemaConstants.NOTATION, new
153143
// BuiltinLeafInfoProducer<T, C, O>("Notation"));
154144
XSD_TYPE_MAPPING.put(XmlSchemaConstants.DURATION, new DurationTypeInfoProducer<T, C, O>());
155145
XSD_TYPE_MAPPING.put(XmlSchemaConstants.DATETIME,
156-
new XMLGregorianCalendarTypeInfoProducer<T, C, O>( XmlSchemaConstants.DATETIME));
146+
new XMLGregorianCalendarTypeInfoProducer<T, C, O>(XmlSchemaConstants.DATETIME));
157147
XSD_TYPE_MAPPING.put(XmlSchemaConstants.TIME,
158148
new XMLGregorianCalendarTypeInfoProducer<T, C, O>(XmlSchemaConstants.TIME));
159149
XSD_TYPE_MAPPING.put(XmlSchemaConstants.DATE,
160-
new XMLGregorianCalendarTypeInfoProducer<T, C, O>( XmlSchemaConstants.DATE));
150+
new XMLGregorianCalendarTypeInfoProducer<T, C, O>(XmlSchemaConstants.DATE));
161151
XSD_TYPE_MAPPING.put(XmlSchemaConstants.GYEARMONTH,
162-
new XMLGregorianCalendarTypeInfoProducer<T, C, O>( XmlSchemaConstants.GYEARMONTH));
152+
new XMLGregorianCalendarTypeInfoProducer<T, C, O>(XmlSchemaConstants.GYEARMONTH));
163153
XSD_TYPE_MAPPING.put(XmlSchemaConstants.GYEAR,
164154
new XMLGregorianCalendarTypeInfoProducer<T, C, O>(XmlSchemaConstants.GYEAR));
165155
XSD_TYPE_MAPPING.put(XmlSchemaConstants.GMONTHDAY,

compiler/src/main/java/org/hisrc/jsonix/compilation/jsonschema/typeinfo/EnumLeafInfoProducer.java

+21-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package org.hisrc.jsonix.compilation.jsonschema.typeinfo;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import javax.json.JsonValue;
37
import javax.xml.namespace.QName;
48

59
import org.apache.commons.lang3.Validate;
@@ -28,18 +32,28 @@ public JsonSchemaBuilder compile(JsonSchemaMappingCompiler<T, C> mappingCompiler
2832
enumLeafInfoSchema.addTitle(localName);
2933
final MTypeInfo<T, C> baseTypeInfo = enumLeafInfo.getBaseTypeInfo();
3034
final JsonSchemaBuilder typeInfoSchema;
31-
final JsonSchemaBuilder baseTypeInfoSchema = mappingCompiler.createTypeInfoSchemaRef(enumLeafInfo,
32-
baseTypeInfo);
35+
TypeInfoProducer<T, C> baseTypeInfoProducer = mappingCompiler.getTypeInfoProducer(enumLeafInfo, baseTypeInfo);
36+
final JsonSchemaBuilder baseTypeInfoSchema = baseTypeInfoProducer.createTypeInfoSchemaRef(mappingCompiler);
3337
typeInfoSchema = new JsonSchemaBuilder();
3438
typeInfoSchema.addAllOf(baseTypeInfoSchema);
39+
40+
41+
final JsonSchemaBuilder enumsTypeInfoSchema = new JsonSchemaBuilder();
3542

36-
for (MEnumConstantInfo<T, C> enumConstant : enumLeafInfo.getConstants()) {
37-
final JsonSchemaBuilder enumConstantSchema = createEnumConstant(enumLeafInfo, enumConstant);
38-
// TODO generate enums
39-
if (enumConstantSchema != null) {
40-
typeInfoSchema.addEnum(enumConstantSchema);
43+
boolean valuesSupported = true;
44+
for (MEnumConstantInfo<T, C> enumConstantInfo : enumLeafInfo.getConstants()) {
45+
final JsonValue value = baseTypeInfoProducer.createValue(mappingCompiler,
46+
enumConstantInfo.getLexicalValue());
47+
if (value == null) {
48+
valuesSupported = false;
49+
break;
50+
} else {
51+
enumsTypeInfoSchema.addEnum(value);
4152
}
4253
}
54+
if (valuesSupported) {
55+
typeInfoSchema.addAllOf(enumsTypeInfoSchema);
56+
}
4357

4458
typeInfoSchema.add(JsonixJsonSchemaConstants.TYPE_TYPE_PROPERTY_NAME, StandardNaming.ENUM_INFO);
4559
final QName typeName = enumLeafInfo.getTypeName();
@@ -52,9 +66,4 @@ public JsonSchemaBuilder compile(JsonSchemaMappingCompiler<T, C> mappingCompiler
5266

5367
return typeInfoSchema;
5468
}
55-
56-
private JsonSchemaBuilder createEnumConstant(MEnumLeafInfo<T, C> enumLeafInfo,
57-
MEnumConstantInfo<T, C> enumConstant) {
58-
return null;
59-
}
6069
}
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
package org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin;
22

3+
import javax.json.JsonArrayBuilder;
4+
import javax.json.JsonValue;
35
import javax.xml.namespace.QName;
46

5-
import org.hisrc.jscm.codemodel.JSCodeModel;
6-
import org.hisrc.jscm.codemodel.expression.JSArrayLiteral;
7-
import org.hisrc.jscm.codemodel.expression.JSAssignmentExpression;
7+
import org.hisrc.jsonix.compilation.jsonschema.JsonSchemaMappingCompiler;
88
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.BuiltinLeafInfoProducer;
9-
import org.hisrc.jsonix.compilation.mapping.MappingCompiler;
109

1110
public abstract class BinaryTypeInfoProducer<T, C extends T, O> extends BuiltinLeafInfoProducer<T, C, O> {
1211

1312
public BinaryTypeInfoProducer(QName qualifiedName) {
1413
super(qualifiedName);
1514
}
16-
/*
15+
1716
@Override
18-
public JSAssignmentExpression createValue(MappingCompiler<T, C> mappingCompiler, String item) {
19-
final JSCodeModel codeModel = mappingCompiler.getCodeModel();
17+
public JsonValue createValue(JsonSchemaMappingCompiler<T, C> mappingCompiler, String item) {
18+
final JsonArrayBuilder arrayBuilder = mappingCompiler.getJsonBuilderFactory().createArrayBuilder();
2019
final byte[] value = parse(item);
21-
final JSArrayLiteral result = codeModel.array();
2220
for (final byte b : value) {
2321
final int v = b >= 0 ? b : b + 256;
24-
result.append(codeModel.integer(v));
22+
arrayBuilder.add(v);
2523
}
26-
return result;
24+
return arrayBuilder.build();
2725
}
28-
*/
26+
2927
public abstract byte[] parse(String item);
3028
}
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
package org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin;
22

3-
import org.hisrc.jscm.codemodel.JSCodeModel;
4-
import org.hisrc.jscm.codemodel.expression.JSAssignmentExpression;
3+
import javax.json.JsonValue;
4+
5+
import org.hisrc.jsonix.compilation.jsonschema.JsonSchemaMappingCompiler;
56
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.BuiltinLeafInfoProducer;
6-
import org.hisrc.jsonix.compilation.mapping.MappingCompiler;
77
import org.jvnet.jaxb2_commons.xmlschema.XmlSchemaConstants;
88

99
public class BooleanTypeInfoProducer<T, C extends T, O> extends BuiltinLeafInfoProducer<T, C, O> {
1010

1111
public BooleanTypeInfoProducer() {
1212
super(XmlSchemaConstants.BOOLEAN);
1313
}
14-
/*
14+
1515
@Override
16-
public JSAssignmentExpression createValue(MappingCompiler<T, C> mappingCompiler, String item) {
17-
final JSCodeModel codeModel = mappingCompiler.getCodeModel();
18-
return codeModel._boolean(Boolean.valueOf(item));
16+
public JsonValue createValue(JsonSchemaMappingCompiler<T, C> mappingCompiler, String item) {
17+
return Boolean.valueOf(item) ? JsonValue.TRUE : JsonValue.FALSE;
1918
}
20-
*/
2119
}
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
package org.hisrc.jsonix.compilation.jsonschema.typeinfo.builtin;
22

3+
import java.math.BigDecimal;
4+
5+
import javax.json.JsonArrayBuilder;
6+
import javax.json.JsonValue;
37
import javax.xml.namespace.QName;
48

5-
import org.hisrc.jscm.codemodel.JSCodeModel;
6-
import org.hisrc.jscm.codemodel.expression.JSAssignmentExpression;
9+
import org.hisrc.jsonix.compilation.jsonschema.JsonSchemaMappingCompiler;
710
import org.hisrc.jsonix.compilation.jsonschema.typeinfo.BuiltinLeafInfoProducer;
8-
import org.hisrc.jsonix.compilation.mapping.MappingCompiler;
911

1012
public class DecimalTypeInfoProducer<T, C extends T, O> extends BuiltinLeafInfoProducer<T, C, O> {
1113

1214
public DecimalTypeInfoProducer(QName qualifiedName) {
1315
super(qualifiedName);
1416
}
15-
/*
17+
1618
@Override
17-
public JSAssignmentExpression createValue(MappingCompiler<T, C> mappingCompiler, String item) {
18-
final JSCodeModel codeModel = mappingCompiler.getCodeModel();
19+
public JsonValue createValue(JsonSchemaMappingCompiler<T, C> mappingCompiler, String item) {
20+
21+
JsonArrayBuilder arrayBuilder = mappingCompiler.getJsonBuilderFactory().createArrayBuilder();
1922
// Hack to make -INF an INF work
2023
if ("-INF".equals(item)) {
21-
return codeModel.globalVariable("Infinity").negative();
24+
return arrayBuilder.add("-Infinity").build().get(0);
2225
} else if ("INF".equals(item)) {
23-
return codeModel.globalVariable("Infinity");
26+
return arrayBuilder.add("Infinity").build().get(0);
2427
} else {
25-
return codeModel.decimal(item);
28+
return arrayBuilder.add(new BigDecimal(item)).build().get(0);
2629
}
2730
}
28-
*/
2931
}

0 commit comments

Comments
 (0)