com.annimon.stream.operator.LongTakeUntil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stream Show documentation
Show all versions of stream Show documentation
Stream API from Java 8 rewritten on iterators for Java 7 and below
package com.annimon.stream.operator;
import com.annimon.stream.function.LongPredicate;
import com.annimon.stream.iterator.PrimitiveExtIterator;
import com.annimon.stream.iterator.PrimitiveIterator;
public class LongTakeUntil extends PrimitiveExtIterator.OfLong {
private final PrimitiveIterator.OfLong iterator;
private final LongPredicate stopPredicate;
public LongTakeUntil(PrimitiveIterator.OfLong iterator, LongPredicate stopPredicate) {
this.iterator = iterator;
this.stopPredicate = stopPredicate;
}
@Override
protected void nextIteration() {
hasNext = iterator.hasNext() && !(isInit && stopPredicate.test(next));
if (hasNext) {
next = iterator.next();
}
}
}