Package org.apache.storm.streams.windowing

# Class SlidingWindows<L,I>

java.lang.Object
org.apache.storm.streams.windowing.BaseWindow<L,I>
org.apache.storm.streams.windowing.SlidingWindows<L,I>

Type Parameters:
  `L` - The type of the window length (e.g. Duration or Count)
  `I` - The type of the sliding interval (e.g. Duration or Count)

All Implemented Interfaces:
  `Serializable`, `Window<L,I>`

public class SlidingWindows<L,I> extends BaseWindow<L,I>
A sliding window specification based on a window length and sliding interval.

See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class org.apache.storm.streams.windowing.BaseWindow

  `lag, lateTupleStream, timestampField`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  `I`
  `getSlidingInterval()`
  The sliding interval of the window.
  `L`
  `getWindowLength()`
  The length of the window.
  `int`
  `hashCode()`
  `static SlidingWindows<BaseWindowedBolt.Count,BaseWindowedBolt.Count>`
  `of(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Count slidingInterval)`
  Count based sliding window configuration.
  `static SlidingWindows<BaseWindowedBolt.Count,BaseWindowedBolt.Duration>`
  `of(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Duration slidingInterval)`
  Tuple count and time duration based sliding window configuration.
  `static SlidingWindows<BaseWindowedBolt.Duration,BaseWindowedBolt.Count>`
  `of(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Count slidingInterval)`
  Time duration and count based sliding window configuration.
  `static SlidingWindows<BaseWindowedBolt.Duration,BaseWindowedBolt.Duration>`
  `of(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Duration slidingInterval)`
  Time duration based sliding window configuration.
  `SlidingWindows<L,I>`
  `withLag(BaseWindowedBolt.Duration duration)`
  Specify the maximum time lag of the tuple timestamp in milliseconds.
  `SlidingWindows<L,I>`
  `withLateTupleStream(String streamId)`
  Specify a stream id on which late tuples are going to be emitted.
  `SlidingWindows<L,I>`
  `withTimestampField(String fieldName)`
  The name of the field in the tuple that contains the timestamp when the event occurred as a long value.

  ### Methods inherited from class org.apache.storm.streams.windowing.BaseWindow

  `getLag, getLateTupleStream, getTimestampField`

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

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

- ## Method Details

  - ### of

    public static SlidingWindows<BaseWindowedBolt.Count,BaseWindowedBolt.Count> of(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Count slidingInterval)
    Count based sliding window configuration.
    Parameters:
      `windowLength` - the number of tuples in the window
      `slidingInterval` - the number of tuples after which the window slides

  - ### of

    public static SlidingWindows<BaseWindowedBolt.Duration,BaseWindowedBolt.Duration> of(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Duration slidingInterval)
    Time duration based sliding window configuration.
    Parameters:
      `windowLength` - the time duration of the window
      `slidingInterval` - the time duration after which the window slides

  - ### of

    public static SlidingWindows<BaseWindowedBolt.Count,BaseWindowedBolt.Duration> of(BaseWindowedBolt.Count windowLength, BaseWindowedBolt.Duration slidingInterval)
    Tuple count and time duration based sliding window configuration.
    Parameters:
      `windowLength` - the number of tuples in the window
      `slidingInterval` - the time duration after which the window slides

  - ### of

    public static SlidingWindows<BaseWindowedBolt.Duration,BaseWindowedBolt.Count> of(BaseWindowedBolt.Duration windowLength, BaseWindowedBolt.Count slidingInterval)
    Time duration and count based sliding window configuration.
    Parameters:
      `windowLength` - the time duration of the window
      `slidingInterval` - the number of tuples after which the window slides

  - ### getWindowLength

    public L getWindowLength()
    The length of the window.
    Returns:
      the window length

  - ### getSlidingInterval

    public I getSlidingInterval()
    The sliding interval of the window.
    Returns:
      the sliding interval

  - ### withTimestampField

    public SlidingWindows<L,I> withTimestampField(String fieldName)
    The name of the field in the tuple that contains the timestamp when the event occurred as a long value. This is used of event-time based processing. If this config is set and the field is not present in the incoming tuple, an `IllegalArgumentException` will be thrown.
    Parameters:
      `fieldName` - the name of the field that contains the timestamp

  - ### withLateTupleStream

    public SlidingWindows<L,I> withLateTupleStream(String streamId)
    Specify a stream id on which late tuples are going to be emitted. They are going to be accessible via the `WindowedBoltExecutor.LATE_TUPLE_FIELD` field. It must be defined on a per-component basis, and in conjunction with the `BaseWindowedBolt.withTimestampField(java.lang.String)`, otherwise `IllegalArgumentException` will be thrown.
    Parameters:
      `streamId` - the name of the stream used to emit late tuples on

  - ### withLag

    public SlidingWindows<L,I> withLag(BaseWindowedBolt.Duration duration)
    Specify the maximum time lag of the tuple timestamp in milliseconds. It means that the tuple timestamps cannot be out of order by more than this amount.
    Parameters:
      `duration` - the max lag duration

  - ### equals

    public boolean equals(Object o)
    Overrides:
      `equals` in class `BaseWindow<L,I>`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `BaseWindow<L,I>`