public void seek()

in modules/accumulo/src/main/java/org/apache/fluo/accumulo/iterators/SnapshotIterator.java [218:261]


  public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive)
      throws IOException {

    Range newRange = range;
    Collection<ByteSequence> cols;
    boolean inc;

    clearReadLock();

    // handle continue case
    hasTop = true;
    if (range.getStartKey() != null && range.getStartKey().getTimestamp() != Long.MAX_VALUE
        && !range.isStartKeyInclusive()) {

      if (ColumnType.from(range.getStartKey()) == ColumnType.RLOCK) {
        Key currCol = new Key(range.getStartKey());
        currCol.setTimestamp(Long.MAX_VALUE);
        newRange = new Range(currCol, true, range.getEndKey(), range.isEndKeyInclusive());
        ignoreReadLock(currCol);
      } else {

        Key nextCol = range.getStartKey().followingKey(PartialKey.ROW_COLFAM_COLQUAL_COLVIS);
        if (range.afterEndKey(nextCol)) {
          hasTop = false;
          return;
        } else {
          newRange = new Range(nextCol, true, range.getEndKey(), range.isEndKeyInclusive());
        }
      }
    } else {
      newRange = range;
    }

    if (columnFamilies.isEmpty() && inclusive == false) {
      cols = NOTIFY_CF_SET;
      inc = false;
    } else {
      cols = columnFamilies;
      inc = inclusive;
    }

    source.seek(newRange, cols, inc);
    findTop();
  }