@Override @SuppressWarnings("unchecked") public ByteArray read(DataInput dataInput) { int length = dataInput.readInt(); // We can use ByteArray.wrap here since in this use case the dataInput // will always be a DataInputImpl which copies the bytes when reading // them. return ByteArray.wrap(dataInput.readBytes(length)); }
@Override public void write(Object value, DataOutput dataOutput, IdentityRecordStack parentRecords) { ByteArray byteArray = (ByteArray) value; dataOutput.writeInt(byteArray.length()); // We can use getBytesUnsafe here since we know that in this use case // the // dataOutput will be a DataOutputImpl which copies the byte[] when // writing it. dataOutput.writeBytes(byteArray.getBytesUnsafe()); }
@Override public void serialize(Object value, DataOutput dataOutput) { dataOutput.writeVInt(((ByteArray)value).length()); dataOutput.writeBytes(((ByteArray) value).getBytesUnsafe()); }
private static void writeNullOrVLong(Long value, DataOutput output) { if (value == null) { output.writeByte(NULL_MARKER); } else { output.writeByte(NOT_NULL_MARKER); output.writeVLong(value); } }
@Override @SuppressWarnings("unchecked") public Integer read(DataInput dataInput) { return dataInput.readInt(); }
@Override public Object deserialize(DataInput dataInput) { return dataInput.readVInt(); } }
@Override public Object deserialize(DataInput dataInput) { return dataInput.readVLong(); } }
@Override public Object deserialize(DataInput dataInput) { return dataInput.readDouble(); } }
@Override public Object deserialize(DataInput dataInput) { return dataInput.readBoolean(); } }
@Override public Object deserialize(DataInput dataInput) { return dataInput.readFloat(); } }
@Override public void write(Object value, DataOutput dataOutput, IdentityRecordStack parentRecords) { dataOutput.writeDouble((Double)value); }
@Override @SuppressWarnings("unchecked") public Double read(DataInput dataInput) { return dataInput.readDouble(); }
@Override @SuppressWarnings("unchecked") public Boolean read(DataInput dataInput) { return dataInput.readBoolean(); }