@Experimental(value=TRIGGER) public class AfterPane extends Trigger.OnceTrigger
Triggers that fire based on properties of the elements in the current pane.Trigger.MergingTriggerInfo, Trigger.OnceTrigger, Trigger.OnElementContext, Trigger.OnMergeContext, Trigger.TriggerContext, Trigger.TriggerInfosubTriggers| Modifier and Type | Method and Description |
|---|---|
void |
clear(Trigger.TriggerContext c)
Clear any state associated with this trigger in the given window.
|
static AfterPane |
elementCountAtLeast(int countElems)
Creates a trigger that fires when the pane contains at least
countElems elements. |
boolean |
equals(Object obj) |
Trigger.OnceTrigger |
getContinuationTrigger(List<Trigger> continuationTriggers)
Return the
Trigger.getContinuationTrigger() of this Trigger. |
Instant |
getWatermarkThatGuaranteesFiring(BoundedWindow window)
Returns a bound in watermark time by which this trigger would have fired at least once
for a given window had there been input data.
|
int |
hashCode() |
boolean |
isCompatible(Trigger other)
Returns whether this performs the same triggering as the given
Trigger. |
void |
onElement(Trigger.OnElementContext c)
Called every time an element is incorporated into a window.
|
void |
onMerge(Trigger.OnMergeContext context)
Called immediately after windows have been merged.
|
protected void |
onOnlyFiring(Trigger.TriggerContext context)
Called exactly once by
Trigger.OnceTrigger.onFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) when the trigger is fired. |
void |
prefetchOnMerge(org.apache.beam.sdk.util.state.MergingStateAccessor<?,?> state)
Called to allow the trigger to prefetch any state it will likely need to read from during
an
Trigger.onMerge(org.apache.beam.sdk.transforms.windowing.Trigger.OnMergeContext) call. |
void |
prefetchShouldFire(org.apache.beam.sdk.util.state.StateAccessor<?> state)
Called to allow the trigger to prefetch any state it will likely need to read from during
an
Trigger.shouldFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) call. |
boolean |
shouldFire(Trigger.TriggerContext context)
Returns
true if the current state of the trigger indicates that its condition
is satisfied and it is ready to fire. |
String |
toString() |
getContinuationTrigger, onFireorFinally, prefetchOnElement, prefetchOnFire, subTriggerspublic static AfterPane elementCountAtLeast(int countElems)
countElems elements.public void onElement(Trigger.OnElementContext c) throws Exception
Triggerpublic void prefetchOnMerge(org.apache.beam.sdk.util.state.MergingStateAccessor<?,?> state)
TriggerTrigger.onMerge(org.apache.beam.sdk.transforms.windowing.Trigger.OnMergeContext) call.prefetchOnMerge in class Triggerpublic void onMerge(Trigger.OnMergeContext context) throws Exception
TriggerLeaf triggers should update their state by inspecting their status and any state
in the merging windows. Composite triggers should update their state by calling
ExecutableTrigger.invokeOnMerge(org.apache.beam.sdk.transforms.windowing.Trigger.OnMergeContext) on their sub-triggers, and applying appropriate logic.
A trigger such as AfterWatermark.pastEndOfWindow() may no longer be finished;
it is the responsibility of the trigger itself to record this fact. It is forbidden for
a trigger to become finished due to Trigger.onMerge(org.apache.beam.sdk.transforms.windowing.Trigger.OnMergeContext), as it has not yet fired the pending
elements that led to it being ready to fire.
The implementation does not need to clear out any state associated with the old windows.
public void prefetchShouldFire(org.apache.beam.sdk.util.state.StateAccessor<?> state)
TriggerTrigger.shouldFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) call.prefetchShouldFire in class Triggerpublic boolean shouldFire(Trigger.TriggerContext context) throws Exception
Triggertrue if the current state of the trigger indicates that its condition
is satisfied and it is ready to fire.shouldFire in class TriggerExceptionpublic void clear(Trigger.TriggerContext c) throws Exception
TriggerThis is called after a trigger has indicated it will never fire again. The trigger system keeps enough information to know that the trigger is finished, so this trigger should clear all of its state.
public boolean isCompatible(Trigger other)
TriggerTrigger.isCompatible in class Triggerpublic Instant getWatermarkThatGuaranteesFiring(BoundedWindow window)
TriggerFor triggers that do not fire based on the watermark advancing, returns
BoundedWindow.TIMESTAMP_MAX_VALUE.
This estimate is used to determine that there are no elements in a side-input window, which causes the default value to be used instead.
getWatermarkThatGuaranteesFiring in class Triggerpublic Trigger.OnceTrigger getContinuationTrigger(List<Trigger> continuationTriggers)
TriggerTrigger.getContinuationTrigger() of this Trigger. For convenience, this
is provided the continuation trigger of each of the sub-triggers.getContinuationTrigger in class Triggerprotected void onOnlyFiring(Trigger.TriggerContext context) throws Exception
Trigger.OnceTriggerTrigger.OnceTrigger.onFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) when the trigger is fired. By default,
invokes Trigger.OnceTrigger.onFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) on all subtriggers for which Trigger.shouldFire(org.apache.beam.sdk.transforms.windowing.Trigger.TriggerContext) is true.onOnlyFiring in class Trigger.OnceTriggerException