Class MessageSpliterator<Message extends PMessage<Message>>

  • All Implemented Interfaces:
    java.util.Spliterator<Message>

    public class MessageSpliterator<Message extends PMessage<Message>>
    extends java.lang.Object
    implements java.util.Spliterator<Message>
    Spliterator that reads messages from a stream.
    • 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 inherited from interface java.util.Spliterator

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int characteristics()
      Ordered, non-null and immutable.
      long estimateSize()
      We mostly never know the number of messages in a message stream until the last message has been read.
      java.util.Comparator<? super Message> getComparator()
      Messages are comparable.
      long getExactSizeIfKnown()
      We mostly never know the number of messages in a message stream until the last message has been read.
      boolean tryAdvance​(java.util.function.Consumer<? super Message> action)  
      java.util.Spliterator<Message> trySplit()
      Normally we cannot split the stream.
      • Methods inherited from class java.lang.Object

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

        forEachRemaining, hasCharacteristics
    • Constructor Detail

      • MessageSpliterator

        public MessageSpliterator​(@Nonnull
                                  java.io.InputStream in,
                                  @Nonnull
                                  Serializer serializer,
                                  @Nonnull
                                  PMessageDescriptor<Message> descriptor)
        Make a self-closing message spliterator.
        Parameters:
        in - Input stream to read from.
        serializer - Serializer to use.
        descriptor - The message descriptor of contained messages.
      • MessageSpliterator

        public MessageSpliterator​(@Nonnull
                                  java.io.InputStream in,
                                  @Nonnull
                                  Serializer serializer,
                                  @Nonnull
                                  PMessageDescriptor<Message> descriptor,
                                  @Nullable
                                  java.io.Closeable closer)
        Make a spliterator with specific closing function.
        Parameters:
        in - Input stream to read from.
        serializer - Serializer to use.
        descriptor - The message descriptor of contained messages.
        closer - The stream closer function. If null nothing is done when closing the spliterator.
    • Method Detail

      • tryAdvance

        public boolean tryAdvance​(java.util.function.Consumer<? super Message> action)
        Specified by:
        tryAdvance in interface java.util.Spliterator<Message extends PMessage<Message>>
      • trySplit

        public java.util.Spliterator<Message> trySplit()
        Normally we cannot split the stream.
        Specified by:
        trySplit in interface java.util.Spliterator<Message extends PMessage<Message>>
        Returns:
        null (no split).
      • estimateSize

        public long estimateSize()
        We mostly never know the number of messages in a message stream until the last message has been read.
        Specified by:
        estimateSize in interface java.util.Spliterator<Message extends PMessage<Message>>
        Returns:
        Long.MAX_VALUE (not known).
      • getExactSizeIfKnown

        public long getExactSizeIfKnown()
        We mostly never know the number of messages in a message stream until the last message has been read.
        Specified by:
        getExactSizeIfKnown in interface java.util.Spliterator<Message extends PMessage<Message>>
        Returns:
        -1 (not known).
      • characteristics

        public int characteristics()
        Ordered, non-null and immutable.
        Specified by:
        characteristics in interface java.util.Spliterator<Message extends PMessage<Message>>
        Returns:
        The characteristics.
      • getComparator

        public java.util.Comparator<? super Message> getComparator()
        Messages are comparable.
        Specified by:
        getComparator in interface java.util.Spliterator<Message extends PMessage<Message>>
        Returns:
        Comparable compareTo method.