@Override public long getSerializedSize() throws IOException { long size = 0; for (ColumnPartSerde part : parts) { size += part.getSerializer().getSerializedSize(); } return size; }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher smoosher) throws IOException { for (ColumnPartSerde part : parts) { part.getSerializer().writeTo(channel, smoosher); } }
/** * This method provides the ability for a ComplexMetricSerde to control its own serialization. * For large column (i.e columns greater than {@link Integer#MAX_VALUE}) use * {@link LargeColumnSupportedComplexColumnSerializer} * * @return an instance of GenericColumnSerializer used for serialization. */ public GenericColumnSerializer getSerializer(SegmentWriteOutMedium segmentWriteOutMedium, String column) { return ComplexColumnSerializer.create(segmentWriteOutMedium, column, this.getObjectStrategy()); } }
private ComplexColumnPartSerde(String typeName, Serializer serializer) { this.typeName = typeName; this.serde = ComplexMetrics.getSerdeForType(typeName); this.serializer = serializer; }
@Override public GenericColumnSerializer getSerializer(SegmentWriteOutMedium segmentWriteOutMedium, String metric) { return LargeColumnSupportedComplexColumnSerializer.createWithColumnSize( segmentWriteOutMedium, metric, this.getObjectStrategy(), Integer.MAX_VALUE ); } }
public ColumnHolder read(ByteBuffer buffer, ColumnConfig columnConfig, SmooshedFileMapper smooshedFiles) { final ColumnBuilder builder = new ColumnBuilder() .setType(valueType) .setHasMultipleValues(hasMultipleValues) .setFileMapper(smooshedFiles); for (ColumnPartSerde part : parts) { part.getDeserializer().read(buffer, builder, columnConfig); } return builder.build(); }
@Override public long getSerializedSize() throws IOException { return delegate.getSerializedSize(); }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher fileSmoosher) throws IOException { delegate.writeTo(channel, fileSmoosher); } };
@Override public void read(ByteBuffer buffer, ColumnBuilder builder, ColumnConfig columnConfig) { if (serde != null) { serde.deserializeColumn(buffer, builder); } } };
public FloatNumericColumnPartSerde build() { return new FloatNumericColumnPartSerde(byteOrder, delegate); } }
public DoubleNumericColumnPartSerde build() { return new DoubleNumericColumnPartSerde(byteOrder, delegate); } }
public LongNumericColumnPartSerde build() { return new LongNumericColumnPartSerde(byteOrder, delegate); } }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher smoosher) throws IOException { writeToVersionOne(channel); }
private static boolean mustWriteFlags(final int flags) { // Flags that are not implied by version codes < COMPRESSED must be written. This includes MULTI_VALUE_V3. return flags != NO_FLAGS && flags != Feature.MULTI_VALUE.getMask(); } }
public int getMask() { return (1 << ordinal()); } }
public ComplexColumnPartSerde build() { return new ComplexColumnPartSerde(typeName, delegate); } }
public byte asByte() { return (byte) this.ordinal(); } }
@Override public long getSerializedSize() throws IOException { return delegate.getSerializedSize(); }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher fileSmoosher) throws IOException { delegate.writeTo(channel, fileSmoosher); } };
@Override public long getSerializedSize() throws IOException { return delegate.getSerializedSize(); }