Package org.apache.storm.windowing

## Class TupleWindowIterImpl

- java.lang.Object
- - org.apache.storm.windowing.TupleWindowIterImpl

- All Implemented Interfaces:
    `TupleWindow`, `Window<Tuple>`

      public class TupleWindowIterImpl
      extends Object
      implements TupleWindow

  An iterator based implementation over the events in a window.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TupleWindowIterImpl​(Supplier<Iterator<Tuple>> tuplesIt, Supplier<Iterator<Tuple>> newTuplesIt, Supplier<Iterator<Tuple>> expiredTuplesIt, Long startTimestamp, Long endTimestamp)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<Tuple>` | `get()` | Gets the list of events in the window.
    `Long` | `getEndTimestamp()` | If processing based on event time, returns the window end time based on watermark otherwise returns the window end time based on processing time.
    `List<Tuple>` | `getExpired()` | Get the list of events expired from the window since the last time the window was generated.
    `Iterator<Tuple>` | `getIter()` | Returns an iterator over the events in the window.
    `List<Tuple>` | `getNew()` | Get the list of newly added events in the window since the last time the window was generated.
    `Long` | `getStartTimestamp()` | Returns the window start timestamp.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TupleWindowIterImpl

          public TupleWindowIterImpl​(Supplier<Iterator<Tuple>> tuplesIt,
                                     Supplier<Iterator<Tuple>> newTuplesIt,
                                     Supplier<Iterator<Tuple>> expiredTuplesIt,
                                     Long startTimestamp,
                                     Long endTimestamp)

  - ### Method Detail

    - #### get

          public List<Tuple> get()

      Description copied from interface: `Window`
      Gets the list of events in the window.

      Note: If the number of tuples in windows is huge, invoking `get` would load all the tuples into memory and may throw an OOM exception. Use windowing with persistence (`BaseStatefulWindowedBolt.withPersistence()`) and `Window.getIter()` to retrieve an iterator over the events in the window.

      Specified by:
        `get` in interface `Window<Tuple>`
      Returns:
        the list of events in the window.

    - #### getIter

          public Iterator<Tuple> getIter()

      Description copied from interface: `Window`
      Returns an iterator over the events in the window.

      Note: This is only supported when using windowing with persistence `BaseStatefulWindowedBolt.withPersistence()`.

      Specified by:
        `getIter` in interface `Window<Tuple>`
      Returns:
        an `Iterator` over the events in the current window.

    - #### getNew

          public List<Tuple> getNew()

      Description copied from interface: `Window`
      Get the list of newly added events in the window since the last time the window was generated.

      Note: This is not supported when using windowing with persistence (`BaseStatefulWindowedBolt.withPersistence()`).

      Specified by:
        `getNew` in interface `Window<Tuple>`
      Returns:
        the list of newly added events in the window.

    - #### getExpired

          public List<Tuple> getExpired()

      Description copied from interface: `Window`
      Get the list of events expired from the window since the last time the window was generated.

      Note: This is not supported when using windowing with persistence (`BaseStatefulWindowedBolt.withPersistence()`).

      Specified by:
        `getExpired` in interface `Window<Tuple>`
      Returns:
        the list of events expired from the window.

    - #### getEndTimestamp

          public Long getEndTimestamp()

      Description copied from interface: `Window`
      If processing based on event time, returns the window end time based on watermark otherwise returns the window end time based on processing time.
      Specified by:
        `getEndTimestamp` in interface `Window<Tuple>`
      Returns:
        the window end timestamp

    - #### getStartTimestamp

          public Long getStartTimestamp()

      Description copied from interface: `Window`
      Returns the window start timestamp. Will return null if the window length is not based on time duration.
      Specified by:
        `getStartTimestamp` in interface `Window<Tuple>`
      Returns:
        the window start timestamp or null if the window length is not time based