package mil.nga.giat.geowave.core.store.dimension; import mil.nga.giat.geowave.core.index.ByteArrayId; import mil.nga.giat.geowave.core.store.data.field.ArrayReader; import mil.nga.giat.geowave.core.store.data.field.ArrayWriter; import mil.nga.giat.geowave.core.store.data.field.FieldReader; import mil.nga.giat.geowave.core.store.data.field.FieldWriter; public class ArrayAdapter<T> implements FieldReader<ArrayWrapper<T>>, FieldWriter<Object, ArrayWrapper<T>> { protected FieldReader<T[]> reader; protected FieldWriter<Object, T[]> writer; protected ArrayAdapter() { super(); } public ArrayAdapter( final ArrayReader<T> reader, final ArrayWriter<Object, T> writer ) { this.reader = reader; this.writer = writer; } @Override public byte[] getVisibility( final Object rowValue, final ByteArrayId fieldId, final ArrayWrapper<T> fieldValue ) { return fieldValue.getVisibility(); } @Override public byte[] writeField( final ArrayWrapper<T> fieldValue ) { return writer.writeField(fieldValue.getArray()); } @Override public ArrayWrapper<T> readField( final byte[] fieldData ) { return new ArrayWrapper<T>( reader.readField(fieldData)); } }