in src/main/java/org/apache/uima/json/jsoncas2/ser/CommonArrayFSSerializer.java [52:118]
protected void writeBody(SerializerProvider aProvider, JsonGenerator aJg, FeatureStructure aFs)
throws IOException {
aJg.writeFieldName(ELEMENTS_FIELD);
switch (aFs.getType().getName()) {
case CAS.TYPE_NAME_BOOLEAN_ARRAY: {
aJg.writeStartArray();
boolean[] values = ((BooleanArrayFS) aFs).toArray();
for (int i = 0; i < values.length; i++) {
aJg.writeBoolean(values[i]);
}
aJg.writeEndArray();
break;
}
case CAS.TYPE_NAME_BYTE_ARRAY: {
aJg.writeBinary(((ByteArrayFS) aFs).toArray());
break;
}
case CAS.TYPE_NAME_DOUBLE_ARRAY: {
double[] values = ((DoubleArrayFS) aFs).toArray();
aJg.writeArray(values, 0, values.length);
break;
}
case CAS.TYPE_NAME_FLOAT_ARRAY: {
float[] fValues = ((FloatArrayFS) aFs).toArray();
double[] dValues = new double[fValues.length];
for (int i = 0; i < fValues.length; i++) {
dValues[i] = fValues[i];
}
aJg.writeArray(dValues, 0, dValues.length);
break;
}
case CAS.TYPE_NAME_INTEGER_ARRAY: {
int[] values = ((IntArrayFS) aFs).toArray();
aJg.writeArray(values, 0, values.length);
break;
}
case CAS.TYPE_NAME_LONG_ARRAY: {
long[] values = ((LongArrayFS) aFs).toArray();
aJg.writeArray(values, 0, values.length);
break;
}
case CAS.TYPE_NAME_SHORT_ARRAY: {
short[] sValues = ((ShortArrayFS) aFs).toArray();
int[] iValues = new int[sValues.length];
for (int i = 0; i < sValues.length; i++) {
iValues[i] = sValues[i];
}
aJg.writeArray(iValues, 0, iValues.length);
break;
}
case CAS.TYPE_NAME_STRING_ARRAY: {
String[] values = ((StringArrayFS) aFs).toArray();
aJg.writeArray(values, 0, values.length);
break;
}
case CAS.TYPE_NAME_FS_ARRAY: // fall-through
default: {
aJg.writeStartArray();
ReferenceCache refCache = ReferenceCache.get(aProvider);
for (FeatureStructure fs : ((FSArray<FeatureStructure>) aFs)) {
aJg.writeNumber(refCache.fsRef(fs));
}
aJg.writeEndArray();
break;
}
}
}