package mil.nga.giat.geowave.core.store.data.field.base; import mil.nga.giat.geowave.core.index.ByteArrayId; import mil.nga.giat.geowave.core.store.data.field.FieldReader; import mil.nga.giat.geowave.core.store.data.field.FieldSerializationProviderSpi; import mil.nga.giat.geowave.core.store.data.field.FieldWriter; import org.apache.commons.lang3.ArrayUtils; public class ByteArraySerializationProvider implements FieldSerializationProviderSpi<Byte[]> { @Override public FieldReader<Byte[]> getFieldReader() { return new ByteArrayReader(); } @Override public FieldWriter<Object, Byte[]> getFieldWriter() { return new ByteArrayWriter(); } public static class ByteArrayReader implements FieldReader<Byte[]> { @Override public Byte[] readField( final byte[] fieldData ) { if (fieldData == null || fieldData.length < 1) { return null; } return ArrayUtils.toObject(fieldData); } } public static class ByteArrayWriter implements FieldWriter<Object, Byte[]> { @Override public byte[] writeField( final Byte[] fieldValue ) { if (fieldValue == null) { return new byte[] {}; } return ArrayUtils.toPrimitive(fieldValue); } @Override public byte[] getVisibility( final Object rowValue, final ByteArrayId fieldId, final Byte[] fieldValue ) { return new byte[] {}; } } }