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