package mil.nga.giat.geowave.core.store.index.text;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import mil.nga.giat.geowave.core.index.ByteArrayId;
import mil.nga.giat.geowave.core.index.ByteArrayRange;
import mil.nga.giat.geowave.core.index.IndexMetaData;
import mil.nga.giat.geowave.core.store.base.DataStoreEntryInfo.FieldInfo;
import mil.nga.giat.geowave.core.store.index.FieldIndexStrategy;
public class TextIndexStrategy implements
FieldIndexStrategy<TextQueryConstraint, String>
{
private static final String ID = "TEXT";
public TextIndexStrategy() {
super();
}
@Override
public byte[] toBinary() {
return new byte[0];
}
@Override
public void fromBinary(
final byte[] bytes ) {}
@Override
public List<ByteArrayRange> getQueryRanges(
final TextQueryConstraint indexedRange,
final IndexMetaData... hints ) {
return indexedRange.getRange();
}
@Override
public List<ByteArrayRange> getQueryRanges(
final TextQueryConstraint indexedRange,
final int maxEstimatedRangeDecomposition,
final IndexMetaData... hints ) {
return getQueryRanges(
indexedRange,
hints);
}
@Override
public List<ByteArrayId> getInsertionIds(
final List<FieldInfo<String>> indexedData ) {
final List<ByteArrayId> insertionIds = new ArrayList<>();
for (FieldInfo<String> fieldInfo : indexedData) {
insertionIds.add(new ByteArrayId(
fieldInfo.getDataValue().getValue()));
}
return insertionIds;
}
@Override
public List<ByteArrayId> getInsertionIds(
final List<FieldInfo<String>> indexedData,
final int maxEstimatedDuplicateIds ) {
return getInsertionIds(indexedData);
}
@Override
public List<FieldInfo<String>> getRangeForId(
final ByteArrayId insertionId ) {
return Collections.emptyList();
}
@Override
public String getId() {
return ID;
}
@Override
public Set<ByteArrayId> getNaturalSplits() {
return null;
}
@Override
public List<IndexMetaData> createMetaData() {
return Collections.emptyList();
}
}