package com.annimon.stream.operator;
import com.annimon.stream.function.IndexedPredicate;
import com.annimon.stream.iterator.IndexedIterator;
import com.annimon.stream.iterator.LsaExtIterator;
public class ObjTakeWhileIndexed<T> extends LsaExtIterator<T> {
private final IndexedIterator<? extends T> iterator;
private final IndexedPredicate<? super T> predicate;
public ObjTakeWhileIndexed(IndexedIterator<? extends T> iterator, IndexedPredicate<? super T> predicate) {
this.iterator = iterator;
this.predicate = predicate;
}
@Override
protected void nextIteration() {
hasNext = iterator.hasNext()
&& predicate.test(iterator.getIndex(), next = iterator.next());
}
}