Google Cloud Dataflow SDK for Java, version 1.9.1
Class AfterFirst<W extends BoundedWindow>
- java.lang.Object
-
- com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>
-
- com.google.cloud.dataflow.sdk.transforms.windowing.Trigger.OnceTrigger<W>
-
- com.google.cloud.dataflow.sdk.transforms.windowing.AfterFirst<W>
-
- Type Parameters:
W
-BoundedWindow
subclass used to represent the windows used by thisTrigger
- All Implemented Interfaces:
- TriggerBuilder<W>, Serializable
@Experimental(value=TRIGGER) public class AfterFirst<W extends BoundedWindow> extends Trigger.OnceTrigger<W>
Create a compositeTrigger
that fires once after at least one of its sub-triggers have fired.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.cloud.dataflow.sdk.transforms.windowing.Trigger
Trigger.MergingTriggerInfo<W extends BoundedWindow>, Trigger.OnceTrigger<W extends BoundedWindow>, Trigger.OnElementContext, Trigger.OnMergeContext, Trigger.TriggerContext, Trigger.TriggerInfo<W extends BoundedWindow>
-
-
Field Summary
-
Fields inherited from class com.google.cloud.dataflow.sdk.transforms.windowing.Trigger
subTriggers
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description Trigger.OnceTrigger<W>
getContinuationTrigger(List<Trigger<W>> continuationTriggers)
Return theTrigger.getContinuationTrigger()
of thisTrigger
.Instant
getWatermarkThatGuaranteesFiring(W 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.static <W extends BoundedWindow>
Trigger.OnceTrigger<W>of(Trigger.OnceTrigger<W>... triggers)
Returns anAfterFirst
Trigger
with the given subtriggers.void
onElement(Trigger.OnElementContext c)
Called immediately after an element is first incorporated into a window.void
onMerge(Trigger.OnMergeContext c)
Called immediately after windows have been merged.protected void
onOnlyFiring(Trigger.TriggerContext context)
Called exactly once byTrigger.OnceTrigger.onFire(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.TriggerContext)
when the trigger is fired.boolean
shouldFire(Trigger.TriggerContext context)
Returnstrue
if the current state of the trigger indicates that its condition is satisfied and it is ready to fire.String
toString()
-
Methods inherited from class com.google.cloud.dataflow.sdk.transforms.windowing.Trigger.OnceTrigger
getContinuationTrigger, onFire
-
Methods inherited from class com.google.cloud.dataflow.sdk.transforms.windowing.Trigger
buildTrigger, clear, equals, hashCode, isCompatible, orFinally, prefetchOnElement, prefetchOnFire, prefetchOnMerge, prefetchShouldFire, subTriggers
-
-
-
-
Method Detail
-
of
@SafeVarargs public static <W extends BoundedWindow> Trigger.OnceTrigger<W> of(Trigger.OnceTrigger<W>... triggers)
Returns anAfterFirst
Trigger
with the given subtriggers.
-
onElement
public void onElement(Trigger.OnElementContext c) throws Exception
Description copied from class:Trigger
Called immediately after an element is first incorporated into a window.- Specified by:
onElement
in classTrigger<W extends BoundedWindow>
- Throws:
Exception
-
onMerge
public void onMerge(Trigger.OnMergeContext c) throws Exception
Description copied from class:Trigger
Called immediately after windows have been merged.Leaf 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(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.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 toTrigger.onMerge(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.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.
- Specified by:
onMerge
in classTrigger<W extends BoundedWindow>
- Throws:
Exception
-
getWatermarkThatGuaranteesFiring
public Instant getWatermarkThatGuaranteesFiring(W window)
Description copied from class:Trigger
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. This is a static property of a trigger that does not depend on its state.For 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.
- Specified by:
getWatermarkThatGuaranteesFiring
in classTrigger<W extends BoundedWindow>
-
getContinuationTrigger
public Trigger.OnceTrigger<W> getContinuationTrigger(List<Trigger<W>> continuationTriggers)
Description copied from class:Trigger
Return theTrigger.getContinuationTrigger()
of thisTrigger
. For convenience, this is provided the continuation trigger of each of the sub-triggers.- Specified by:
getContinuationTrigger
in classTrigger<W extends BoundedWindow>
-
shouldFire
public boolean shouldFire(Trigger.TriggerContext context) throws Exception
Description copied from class:Trigger
Returnstrue
if the current state of the trigger indicates that its condition is satisfied and it is ready to fire.- Specified by:
shouldFire
in classTrigger<W extends BoundedWindow>
- Throws:
Exception
-
onOnlyFiring
protected void onOnlyFiring(Trigger.TriggerContext context) throws Exception
Description copied from class:Trigger.OnceTrigger
Called exactly once byTrigger.OnceTrigger.onFire(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.TriggerContext)
when the trigger is fired. By default, invokesTrigger.OnceTrigger.onFire(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.TriggerContext)
on all subtriggers for whichTrigger.shouldFire(com.google.cloud.dataflow.sdk.transforms.windowing.Trigger<W>.TriggerContext)
istrue
.- Specified by:
onOnlyFiring
in classTrigger.OnceTrigger<W extends BoundedWindow>
- Throws:
Exception
-
toString
public String toString()
- Overrides:
toString
in classTrigger<W extends BoundedWindow>
-
-