@Override protected Object newArray(Object old, int size, Schema schema) { if ("set".equals(schema.getProp(ThriftData.THRIFT_PROP))) { if (old instanceof Set) { ((Set) old).clear(); return old; } return new HashSet(); } else { return super.newArray(old, size, schema); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { LogicalType logicalType = expectedType.getLogicalType(); Conversion<?> conversion = getData().getConversionFor(logicalType); Object array = newArray(old, (int) l, expected); do { if (logicalType != null && conversion != null) { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithConversion( peekArray(array), expectedType, logicalType, conversion, in)); } } else { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithoutConversion( peekArray(array), expectedType, in)); } } base += l; } while ((l = in.arrayNext()) > 0); return array; } else { return newArray(old, 0, expected); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { LogicalType logicalType = expectedType.getLogicalType(); Conversion<?> conversion = getData().getConversionFor(logicalType); Object array = newArray(old, (int) l, expected); do { if (logicalType != null && conversion != null) { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithConversion( peekArray(array), expectedType, logicalType, conversion, in)); } } else { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithoutConversion( peekArray(array), expectedType, in)); } } base += l; } while ((l = in.arrayNext()) > 0); return pruneArray(array); } else { return pruneArray(newArray(old, 0, expected)); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { Object array = newArray(old, (int) l, expected); do { for (long i = 0; i < l; i++) { addToArray(array, base + i, read(peekArray(array), expectedType, in)); } base += l; } while ((l = in.arrayNext()) > 0); return array; } else { return newArray(old, 0, expected); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { Object array = newArray(old, (int) l, expected); do { for (long i = 0; i < l; i++) { addToArray(array, base + i, read(peekArray(array), expectedType, in)); } base += l; } while ((l = in.arrayNext()) > 0); return array; } else { return newArray(old, 0, expected); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { Object array = newArray(old, (int) l, expected); do { for (long i = 0; i < l; i++) { addToArray(array, base + i, read(peekArray(array), expectedType, in)); } base += l; } while ((l = in.arrayNext()) > 0); return array; } else { return newArray(old, 0, expected); } }
/** Called to read an array instance. May be overridden for alternate array * representations.*/ protected Object readArray(Object old, Schema expected, ResolvingDecoder in) throws IOException { Schema expectedType = expected.getElementType(); long l = in.readArrayStart(); long base = 0; if (l > 0) { LogicalType logicalType = expectedType.getLogicalType(); Conversion<?> conversion = getData().getConversionFor(logicalType); Object array = newArray(old, (int) l, expected); do { if (logicalType != null && conversion != null) { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithConversion( peekArray(array), expectedType, logicalType, conversion, in)); } } else { for (long i = 0; i < l; i++) { addToArray(array, base + i, readWithoutConversion( peekArray(array), expectedType, in)); } } base += l; } while ((l = in.arrayNext()) > 0); return array; } else { return newArray(old, 0, expected); } }