Package org.apache.storm.windowing

## Interface Window<T>

- Type Parameters:
    `T` - the type of event that this window contains. E.g. `Tuple`
  All Known Subinterfaces:
    `TupleWindow`
  All Known Implementing Classes:
    `TupleWindowImpl`, `TupleWindowIterImpl`

      public interface Window<T>

  A view of events in a sliding window.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<T>` | `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<T>` | `getExpired()` | Get the list of events expired from the window since the last time the window was generated.
    `default Iterator<T>` | `getIter()` | Returns an iterator over the events in the window.
    `List<T>` | `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.

- - ### Method Detail

    - #### get

          List<T> get()

      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 `getIter()` to retrieve an iterator over the events in the window.

      Returns:
        the list of events in the window.

    - #### getIter

          default Iterator<T> getIter()

      Returns an iterator over the events in the window.

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

      Returns:
        an `Iterator` over the events in the current window.
      Throws:
        `UnsupportedOperationException` - if not using `BaseStatefulWindowedBolt.withPersistence()`

    - #### getNew

          List<T> getNew()

      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()`).

      Returns:
        the list of newly added events in the window.
      Throws:
        `UnsupportedOperationException` - if using `BaseStatefulWindowedBolt.withPersistence()`

    - #### getExpired

          List<T> getExpired()

      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()`).

      Returns:
        the list of events expired from the window.
      Throws:
        `UnsupportedOperationException` - if using `BaseStatefulWindowedBolt.withPersistence()`

    - #### getEndTimestamp

          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.
      Returns:
        the window end timestamp

    - #### getStartTimestamp

          Long getStartTimestamp()

      Returns the window start timestamp. Will return null if the window length is not based on time duration.
      Returns:
        the window start timestamp or null if the window length is not time based