class TermBasedIndex extends Index {

  @Override
  public SeekingCurrentIterator handleGet(byte[] indexRangeStart,
      byte[] indexRangeEnd) {

    // Get the table adapter for this index
    TableAdapter indexTable = getIndexTable();

    // update the end key to lookup the term properly (and inclusively)
    byte[] end;
    if (indexRangeEnd.length != 0) {
      // need to increment the end so it is inclusive of the end of the range
      end = Arrays.copyOf(indexRangeEnd, indexRangeEnd.length + 1);
      end[end.length - 1] = 1;
    }
    // if it covers the entire range, then we don't need to do anything
    else
      end = indexRangeEnd;

    // do the get
    Get get = new Get(new CRange(indexRangeStart, end));
    return new TermBasedIndexIterator(indexTable.get(get));
  }

  public  TermBasedIndex();
  public  TermBasedIndex(String name, DatabaseAdapter database,
      String primaryTable, String indexTable, byte[] columnFamily,
      byte[] columnQualifier);
  public  TermBasedIndex(String name, DatabaseAdapter database,
      Configuration databaseConf, String primaryTable, String indexTable,
      byte[] columnFamily, byte[] columnQualifier, boolean isSplittable,
      String regex);

}