Exemplo n.º 1
0
  @Override
  public IndexIterator iter(final IndexToken tok) {
    final byte k = tok.type() == IndexType.TEXT ? Data.TEXT : Data.ATTR;
    final int i = id(tok.get());
    if (i > 0) {
      final int[] pres = ids[i];
      final int s = len[i];
      if (s > 0) {
        return new IndexIterator() {
          int p;

          @Override
          public boolean more() {
            return p < s;
          }

          @Override
          public int next() {
            while (more() && data.kind(pres[p++]) != k) ;
            return pres[p - 1];
          }
        };
      }
    }
    return IndexIterator.EMPTY;
  }