Interface Streamer<T>

All Superinterfaces:
Iterator<T>
All Known Implementing Classes:
SimpleStreamer

public interface Streamer<T> extends Iterator<T>
Enables traversal of elements in the underlying data set using either Iterator, Spliterator or a Stream, while allowing implementors to provide additional metadata, such as the size and other characteristics of the underlying data set.

Similarly to the Spliterator, the Streamer allows only a single traversal of the underlying data set. Moreover, a Spliterator or a Stream retrieved from a partially consumed Streamer will continue the traversal of the underlying data.

Note, that the removal of the underlying elements is not supported.

Since:
12.2.1
Author:
as 2015.05.06
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Characteristic value signifying that this Streamer includes all the values from the underlying data set.
    static final int
    Characteristic value signifying that the value returned from size() prior to traversal represents a finite size that, in the absence of structural source modification, represents an exact count of the number of elements that would be encountered by a complete traversal.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    A bit mask representing the set of characteristics of this Streamer.
    default boolean
    A convenience accessor to check if this streamer is ALL_INCLUSIVE.
    default boolean
    A convenience accessor to check if this streamer is SIZED.
    default void
    This operation is not supported.
    long
    Return the exact size of the data set this Streamer will iterate over, or negative integer if the exact size is unknown.
    default Spliterator<T>
    Return a Spliterator over the elements described by this Streamer.
    default Stream<T>
    Return a Stream based on this Streamer.

    Methods inherited from interface java.util.Iterator

    forEachRemaining, hasNext, next
  • Field Details

    • SIZED

      static final int SIZED
      Characteristic value signifying that the value returned from size() prior to traversal represents a finite size that, in the absence of structural source modification, represents an exact count of the number of elements that would be encountered by a complete traversal.
      See Also:
    • ALL_INCLUSIVE

      static final int ALL_INCLUSIVE
      Characteristic value signifying that this Streamer includes all the values from the underlying data set.
      See Also:
  • Method Details

    • size

      long size()
      Return the exact size of the data set this Streamer will iterate over, or negative integer if the exact size is unknown.
      Returns:
      the exact size of the data set this Streamer will iterate over, or negative integer if the exact size is unknown
    • characteristics

      int characteristics()
      A bit mask representing the set of characteristics of this Streamer.
      Returns:
      a bit mask representing the set of characteristics of this Streamer
    • spliterator

      default Spliterator<T> spliterator()
      Return a Spliterator over the elements described by this Streamer.
      Returns:
      a Spliterator over the elements described by this Streamer
    • stream

      default Stream<T> stream()
      Return a Stream based on this Streamer.
      Returns:
      a Stream based on this Streamer
    • isSized

      default boolean isSized()
      A convenience accessor to check if this streamer is SIZED.
      Returns:
      true if this streamer is SIZED, false otherwise
    • isAllInclusive

      default boolean isAllInclusive()
      A convenience accessor to check if this streamer is ALL_INCLUSIVE.
      Returns:
      true if this streamer is ALL_INCLUSIVE, false otherwise
    • remove

      default void remove()
      This operation is not supported.
      Specified by:
      remove in interface Iterator<T>