package mil.nga.giat.geowave.core.geotime.store.dimension;
import mil.nga.giat.geowave.core.store.data.field.ArrayReader.VariableSizeObjectArrayReader;
import mil.nga.giat.geowave.core.store.data.field.ArrayWriter.VariableSizeObjectArrayWriter;
import mil.nga.giat.geowave.core.store.data.field.FieldReader;
import mil.nga.giat.geowave.core.store.data.field.FieldWriter;
import mil.nga.giat.geowave.core.store.dimension.ArrayAdapter;
import mil.nga.giat.geowave.core.store.dimension.ArrayField;
import mil.nga.giat.geowave.core.store.dimension.ArrayWrapper;
import mil.nga.giat.geowave.core.store.dimension.NumericDimensionField;
public class SpatialArrayField extends
ArrayField<GeometryWrapper> implements
NumericDimensionField<ArrayWrapper<GeometryWrapper>>
{
private ArrayAdapter<GeometryWrapper> adapter;
public SpatialArrayField(
final NumericDimensionField<GeometryWrapper> elementField ) {
super(
elementField);
adapter = new ArrayAdapter<GeometryWrapper>(
new VariableSizeObjectArrayReader(
elementField.getReader()),
new VariableSizeObjectArrayWriter(
elementField.getWriter()));
}
public SpatialArrayField() {}
@Override
public FieldWriter<?, ArrayWrapper<GeometryWrapper>> getWriter() {
return adapter;
}
@Override
public FieldReader<ArrayWrapper<GeometryWrapper>> getReader() {
return adapter;
}
@Override
public void fromBinary(
final byte[] bytes ) {
super.fromBinary(bytes);
adapter = new ArrayAdapter<GeometryWrapper>(
new VariableSizeObjectArrayReader(
elementField.getReader()),
new VariableSizeObjectArrayWriter(
elementField.getWriter()));
}
}