blob: 3b0736eb4e1add39772ffee22b262a2ab8d26895 [file] [log] [blame]
package com.intellij.dupLocator.iterators;
import com.intellij.psi.PsiElement;
/**
* Iterator that limits processing of specified number of nodes
*/
public final class CountingNodeIterator extends NodeIterator {
private int index;
private final int max;
private final NodeIterator delegate;
public CountingNodeIterator(int _max, NodeIterator _iterator) {
max = _max;
delegate = _iterator;
}
public boolean hasNext() {
return index < max && delegate.hasNext();
}
public PsiElement current() {
if (index < max)
return delegate.current();
return null;
}
public void advance() {
++index;
delegate.advance();
}
public void rewind() {
if (index >0) {
-- index;
delegate.rewind();
}
}
public void reset() {
index = 0;
delegate.reset();
}
}