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(); } }