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 LongTakeWhile extends PrimitiveExtIterator.OfLong { private final PrimitiveIterator.OfLong iterator; private final LongPredicate predicate; public LongTakeWhile(PrimitiveIterator.OfLong iterator, LongPredicate predicate) { this.iterator = iterator; this.predicate = predicate; } @Override protected void nextIteration() { hasNext = iterator.hasNext() && predicate.test(next = iterator.next()); } }