equal
deleted
inserted
replaced
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); |