protected void writeBody()

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;
      }
    }
  }