public abstract class BoundedWindow
extends java.lang.Object
BoundedWindow
represents window information assigned to data elements.
It has one method maxTimestamp()
to define an upper bound (inclusive) for element
timestamps. A WindowFn
must assign an element only to windows where maxTimestamp()
is greater than or equal to the element timestamp. When the watermark passes the
maximum timestamp, all data for a window is estimated to be received.
A window does not need to have a lower bound. Only the upper bound is mandatory because it governs management of triggering and discarding of the window.
Windows must also implement Object.equals(java.lang.Object)
and Object.hashCode()
such that
windows that are logically equal will be treated as equal by equals()
and hashCode()
.
Modifier and Type | Field and Description |
---|---|
static Instant |
TIMESTAMP_MAX_VALUE
The maximum value for any Beam timestamp.
|
static Instant |
TIMESTAMP_MIN_VALUE
The minimum value for any Beam timestamp.
|
Constructor and Description |
---|
BoundedWindow() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
formatTimestamp(Instant timestamp)
Formats a
Instant timestamp with additional Beam-specific metadata, such as indicating
whether the timestamp is the end of the global window or one of the distinguished values TIMESTAMP_MIN_VALUE or TIMESTAMP_MIN_VALUE . |
abstract Instant |
maxTimestamp()
Returns the inclusive upper bound of timestamps for values in this window.
|
static void |
validateTimestampBounds(Instant timestamp)
Validates that a given timestamp is within min and max bounds.
|
public static final Instant TIMESTAMP_MIN_VALUE
This value and TIMESTAMP_MAX_VALUE
are chosen so that their
microseconds-since-epoch can be safely represented with a long
.
public static final Instant TIMESTAMP_MAX_VALUE
This value and TIMESTAMP_MIN_VALUE
are chosen so that their
microseconds-since-epoch can be safely represented with a long
.
public static java.lang.String formatTimestamp(Instant timestamp)
Instant
timestamp with additional Beam-specific metadata, such as indicating
whether the timestamp is the end of the global window or one of the distinguished values TIMESTAMP_MIN_VALUE
or TIMESTAMP_MIN_VALUE
.public abstract Instant maxTimestamp()
public static void validateTimestampBounds(Instant timestamp)
timestamp
- timestamp to validate