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

  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 Details

  - ### 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