jdk/src/java.base/share/classes/java/util/stream/WhileOps.java
changeset 32649 2ee9017c7597
parent 31644 dbca10d053fd
child 35302 e4d2275861c3
equal deleted inserted replaced
32648:1fa861caf840 32649:2ee9017c7597
   647      * operation.
   647      * operation.
   648      *
   648      *
   649      * @param <T> the type of elements returned by this spliterator
   649      * @param <T> the type of elements returned by this spliterator
   650      * @param <T_SPLITR> the type of the spliterator
   650      * @param <T_SPLITR> the type of the spliterator
   651      */
   651      */
   652     static abstract class UnorderedWhileSpliterator<T, T_SPLITR extends Spliterator<T>> implements Spliterator<T> {
   652     abstract static class UnorderedWhileSpliterator<T, T_SPLITR extends Spliterator<T>> implements Spliterator<T> {
   653         // Power of two constant minus one used for modulus of count
   653         // Power of two constant minus one used for modulus of count
   654         static final int CANCEL_CHECK_COUNT = (1 << 6) - 1;
   654         static final int CANCEL_CHECK_COUNT = (1 << 6) - 1;
   655 
   655 
   656         // The underlying spliterator
   656         // The underlying spliterator
   657         final T_SPLITR s;
   657         final T_SPLITR s;
   713             return count != 0 || !cancel.get();
   713             return count != 0 || !cancel.get();
   714         }
   714         }
   715 
   715 
   716         abstract T_SPLITR makeSpliterator(T_SPLITR s);
   716         abstract T_SPLITR makeSpliterator(T_SPLITR s);
   717 
   717 
   718         static abstract class OfRef<T> extends UnorderedWhileSpliterator<T, Spliterator<T>> implements Consumer<T> {
   718         abstract static class OfRef<T> extends UnorderedWhileSpliterator<T, Spliterator<T>> implements Consumer<T> {
   719             final Predicate<? super T> p;
   719             final Predicate<? super T> p;
   720             T t;
   720             T t;
   721 
   721 
   722             OfRef(Spliterator<T> s, boolean noSplitting, Predicate<? super T> p) {
   722             OfRef(Spliterator<T> s, boolean noSplitting, Predicate<? super T> p) {
   723                 super(s, noSplitting);
   723                 super(s, noSplitting);
   818                     return new Dropping<>(s, this);
   818                     return new Dropping<>(s, this);
   819                 }
   819                 }
   820             }
   820             }
   821         }
   821         }
   822 
   822 
   823         static abstract class OfInt extends UnorderedWhileSpliterator<Integer, Spliterator.OfInt> implements IntConsumer, Spliterator.OfInt {
   823         abstract static class OfInt extends UnorderedWhileSpliterator<Integer, Spliterator.OfInt> implements IntConsumer, Spliterator.OfInt {
   824             final IntPredicate p;
   824             final IntPredicate p;
   825             int t;
   825             int t;
   826 
   826 
   827             OfInt(Spliterator.OfInt s, boolean noSplitting, IntPredicate p) {
   827             OfInt(Spliterator.OfInt s, boolean noSplitting, IntPredicate p) {
   828                 super(s, noSplitting);
   828                 super(s, noSplitting);
   923                     return new Dropping(s, this);
   923                     return new Dropping(s, this);
   924                 }
   924                 }
   925             }
   925             }
   926         }
   926         }
   927 
   927 
   928         static abstract class OfLong extends UnorderedWhileSpliterator<Long, Spliterator.OfLong> implements LongConsumer, Spliterator.OfLong {
   928         abstract static class OfLong extends UnorderedWhileSpliterator<Long, Spliterator.OfLong> implements LongConsumer, Spliterator.OfLong {
   929             final LongPredicate p;
   929             final LongPredicate p;
   930             long t;
   930             long t;
   931 
   931 
   932             OfLong(Spliterator.OfLong s, boolean noSplitting, LongPredicate p) {
   932             OfLong(Spliterator.OfLong s, boolean noSplitting, LongPredicate p) {
   933                 super(s, noSplitting);
   933                 super(s, noSplitting);
  1028                     return new Dropping(s, this);
  1028                     return new Dropping(s, this);
  1029                 }
  1029                 }
  1030             }
  1030             }
  1031         }
  1031         }
  1032 
  1032 
  1033         static abstract class OfDouble extends UnorderedWhileSpliterator<Double, Spliterator.OfDouble> implements DoubleConsumer, Spliterator.OfDouble {
  1033         abstract static class OfDouble extends UnorderedWhileSpliterator<Double, Spliterator.OfDouble> implements DoubleConsumer, Spliterator.OfDouble {
  1034             final DoublePredicate p;
  1034             final DoublePredicate p;
  1035             double t;
  1035             double t;
  1036 
  1036 
  1037             OfDouble(Spliterator.OfDouble s, boolean noSplitting, DoublePredicate p) {
  1037             OfDouble(Spliterator.OfDouble s, boolean noSplitting, DoublePredicate p) {
  1038                 super(s, noSplitting);
  1038                 super(s, noSplitting);