package mil.nga.giat.geowave.core.store.data.field;
import mil.nga.giat.geowave.core.index.ByteArrayId;
/**
* This class contains all of the primitive writer field types supported
*
*/
public class BasicWriter<RowType, FieldType> implements
FieldWriter<RowType, FieldType>
{
private FieldVisibilityHandler<RowType, Object> visibilityHandler;
private FieldWriter<?, FieldType> writer;
public BasicWriter(
final FieldWriter<?, FieldType> writer ) {
this(
writer,
null);
}
public BasicWriter(
final FieldWriter<?, FieldType> writer,
final FieldVisibilityHandler<RowType, Object> visibilityHandler ) {
this.writer = writer;
this.visibilityHandler = visibilityHandler;
}
@Override
public byte[] getVisibility(
final RowType rowValue,
final ByteArrayId fieldId,
final FieldType fieldValue ) {
if (visibilityHandler != null) {
return visibilityHandler.getVisibility(
rowValue,
fieldId,
fieldValue);
}
return new byte[] {};
}
@Override
public byte[] writeField(
final FieldType fieldValue ) {
return writer.writeField(fieldValue);
}
}