Class WithFirstSpliterator<T,​R>

  • All Implemented Interfaces:
    java.lang.Cloneable, java.util.function.Consumer<T>, java.util.Spliterator<R>

    final class WithFirstSpliterator<T,​R>
    extends Internals.CloneableSpliterator<R,​WithFirstSpliterator<T,​R>>
    implements java.util.function.Consumer<T>
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Spliterator

        java.util.Spliterator.OfDouble, java.util.Spliterator.OfInt, java.util.Spliterator.OfLong, java.util.Spliterator.OfPrimitive<T extends java.lang.Object,​T_CONS extends java.lang.Object,​T_SPLITR extends java.util.Spliterator.OfPrimitive<T,​T_CONS,​T_SPLITR>>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.function.Consumer<? super R> action  
      private T first  
      private java.util.concurrent.locks.ReentrantLock lock  
      private java.util.function.BiFunction<? super T,​? super T,​? extends R> mapper  
      private WithFirstSpliterator<T,​R> prefix  
      private java.util.Spliterator<T> source  
      private int state  
      private static int STATE_EMPTY  
      private static int STATE_FIRST_READ  
      private static int STATE_INIT  
      private static int STATE_NONE  
      • Fields inherited from interface java.util.Spliterator

        CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
    • Constructor Summary

      Constructors 
      Constructor Description
      WithFirstSpliterator​(java.util.Spliterator<T> source, java.util.function.BiFunction<? super T,​? super T,​? extends R> mapper)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void accept​(T x)  
      private void acquire()  
      int characteristics()  
      private void doInit()  
      long estimateSize()  
      void forEachRemaining​(java.util.function.Consumer<? super R> action)  
      private void release()  
      boolean tryAdvance​(java.util.function.Consumer<? super R> action)  
      java.util.Spliterator<R> trySplit()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.function.Consumer

        andThen
      • Methods inherited from interface java.util.Spliterator

        getComparator, getExactSizeIfKnown, hasCharacteristics
    • Field Detail

      • lock

        private java.util.concurrent.locks.ReentrantLock lock
      • source

        private java.util.Spliterator<T> source
      • first

        private volatile T first
      • state

        private volatile int state
      • mapper

        private final java.util.function.BiFunction<? super T,​? super T,​? extends R> mapper
      • action

        private java.util.function.Consumer<? super R> action
    • Constructor Detail

      • WithFirstSpliterator

        WithFirstSpliterator​(java.util.Spliterator<T> source,
                             java.util.function.BiFunction<? super T,​? super T,​? extends R> mapper)
    • Method Detail

      • acquire

        private void acquire()
      • release

        private void release()
      • tryAdvance

        public boolean tryAdvance​(java.util.function.Consumer<? super R> action)
        Specified by:
        tryAdvance in interface java.util.Spliterator<T>
      • doInit

        private void doInit()
      • forEachRemaining

        public void forEachRemaining​(java.util.function.Consumer<? super R> action)
        Specified by:
        forEachRemaining in interface java.util.Spliterator<T>
      • trySplit

        public java.util.Spliterator<R> trySplit()
        Specified by:
        trySplit in interface java.util.Spliterator<T>
      • estimateSize

        public long estimateSize()
        Specified by:
        estimateSize in interface java.util.Spliterator<T>
      • characteristics

        public int characteristics()
        Specified by:
        characteristics in interface java.util.Spliterator<T>
      • accept

        public void accept​(T x)
        Specified by:
        accept in interface java.util.function.Consumer<T>