@Experimental(value=TRIGGER) public class AfterEach extends Trigger
Trigger
that executes its sub-triggers in order. Only one sub-trigger is
executing at a time, and any time it fires the AfterEach
fires. When the currently
executing sub-trigger finishes, the AfterEach
starts executing the next sub-trigger.
AfterEach.inOrder(t1, t2, ...)
finishes when all of the sub-triggers have finished.
The following properties hold:
AfterEach.inOrder(AfterEach.inOrder(a, b), c)
behaves the same as AfterEach.inOrder(a, b, c)
and AfterEach.inOrder(a, AfterEach.inOrder(b, c)
.
AfterEach.inOrder(Repeatedly.forever(a), b)
behaves the same as Repeatedly.forever(a)
, since the repeated trigger never finishes.
Trigger.OnceTrigger
subTriggers
Modifier and Type | Method and Description |
---|---|
protected Trigger |
getContinuationTrigger(java.util.List<Trigger> continuationTriggers)
Subclasses should override this to return the
Trigger.getContinuationTrigger() of this Trigger . |
Instant |
getWatermarkThatGuaranteesFiring(BoundedWindow window)
For internal use only; no backwards-compatibility guarantees.
|
static AfterEach |
inOrder(java.util.List<Trigger> triggers)
Returns an
AfterEach Trigger with the given subtriggers. |
static AfterEach |
inOrder(Trigger... triggers)
Returns an
AfterEach Trigger with the given subtriggers. |
boolean |
mayFinish()
For internal use only; no backwards-compatibility guarantees.
|
java.lang.String |
toString() |
equals, getContinuationTrigger, hashCode, isCompatible, orFinally, subTriggers
@SafeVarargs public static AfterEach inOrder(Trigger... triggers)
AfterEach
Trigger
with the given subtriggers.public static AfterEach inOrder(java.util.List<Trigger> triggers)
AfterEach
Trigger
with the given subtriggers.public Instant getWatermarkThatGuaranteesFiring(BoundedWindow window)
Trigger
Returns a bound in event time by which this trigger would have fired at least once for a given window had there been input data.
For triggers that do not fire based on the watermark advancing, returns BoundedWindow.TIMESTAMP_MAX_VALUE
.
This estimate may be used, for example, to determine that there are no elements in a side-input window, which causes the default value to be used instead.
getWatermarkThatGuaranteesFiring
in class Trigger
public boolean mayFinish()
Trigger
Indicates whether this trigger may "finish". A top level trigger that finishes can cause data loss, so is rejected by GroupByKey validation.
protected Trigger getContinuationTrigger(java.util.List<Trigger> continuationTriggers)
Trigger
Trigger.getContinuationTrigger()
of this Trigger
. For convenience, this is provided the continuation trigger of each of the
sub-triggers in the same order as Trigger.subTriggers
.getContinuationTrigger
in class Trigger
continuationTriggers
- null
if Trigger.subTriggers
is null
, otherwise
contains the result of Trigger.getContinuationTrigger()
on each of the subTriggers in the
same order.