private boolean switchSource() throws IOException { if (!source.isCurrent()) { source = source.getNewDataSource(); iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { iter.enableYielding(yield.get()); } return true; } return false; }
@Override public void setInterruptFlag(AtomicBoolean flag) { synchronized (copies) { if (copies.size() != 1) throw new IllegalStateException( "setInterruptFlag() called after deep copies made " + copies.size()); if (iter != null) ((InterruptibleIterator) iter).setInterruptFlag(flag); source.setInterruptFlag(flag); } } }
else { iter.next(); if (onlySwitchAfterRow && iter.hasTop() && !source.isCurrent() && !key.getRowData().equals(iter.getTopKey().getRowData())) { switchSource();
@Override public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException { synchronized (copies) { this.range = range; this.inclusive = inclusive; this.columnFamilies = columnFamilies; if (iter == null) { iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { if (iter instanceof YieldingKeyValueIterator) { ((YieldingKeyValueIterator<Key,Value>) iter).enableYielding(yield.get()); } } } readNext(true); } }
private boolean switchSource() throws IOException { if (!source.isCurrent()) { source = source.getNewDataSource(); iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { if (iter instanceof YieldingKeyValueIterator) { ((YieldingKeyValueIterator<Key,Value>) iter).enableYielding(yield.get()); } } return true; } return false; }
@Override public void setInterruptFlag(AtomicBoolean flag) { synchronized (copies) { if (copies.size() != 1) throw new IllegalStateException( "setInterruptFlag() called after deep copies made " + copies.size()); if (iter != null) ((InterruptibleIterator) iter).setInterruptFlag(flag); source.setInterruptFlag(flag); } } }
@Override public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) { synchronized (copies) { return new SourceSwitchingIterator(source.getDeepCopyDataSource(env), onlySwitchAfterRow, copies); } }
else { iter.next(); if (onlySwitchAfterRow && iter.hasTop() && !source.isCurrent() && !key.getRowData().equals(iter.getTopKey().getRowData())) { switchSource();
@Override public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException { synchronized (copies) { this.range = range; this.inclusive = inclusive; this.columnFamilies = columnFamilies; if (iter == null) { iter = source.iterator(); if (!onlySwitchAfterRow && yield.isPresent()) { iter.enableYielding(yield.get()); } } readNext(true); } }
@Override public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) { synchronized (copies) { return new SourceSwitchingIterator(source.getDeepCopyDataSource(env), onlySwitchAfterRow, copies); } }