Class PaneInfo
- java.lang.Object
-
- org.apache.beam.sdk.transforms.windowing.PaneInfo
-
public final class PaneInfo extends java.lang.Object
Provides information about the pane an element belongs to. Every pane is implicitly associated with a window. Panes are observable only via theDoFn.ProcessContext.pane()
method of the context passed to aDoFn.ProcessElement
method.Note: This does not uniquely identify a pane, and should not be used for comparisons.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PaneInfo.PaneInfoCoder
A Coder for encoding PaneInfo instances.static class
PaneInfo.Timing
Enumerates the possibilities for the timing of this pane firing related to the input and output watermarks for its computation.
-
Field Summary
Fields Modifier and Type Field Description static PaneInfo
NO_FIRING
PaneInfo
to use for elements on (and before) initial window assignment (including elements read from sources) before they have passed through aGroupByKey
and are associated with a particular trigger firing.static PaneInfo
ON_TIME_AND_ONLY_FIRING
PaneInfo
to use when there will be exactly one firing and it is on time.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PaneInfo
createPane(boolean isFirst, boolean isLast, PaneInfo.Timing timing)
static PaneInfo
createPane(boolean isFirst, boolean isLast, PaneInfo.Timing timing, long index, long onTimeIndex)
Factory method to create aPaneInfo
with the specified parameters.static PaneInfo
decodePane(byte encodedPane)
boolean
equals(@Nullable java.lang.Object obj)
long
getIndex()
The zero-based index of this trigger firing that produced this pane.long
getNonSpeculativeIndex()
The zero-based index of this trigger firing among non-speculative panes.PaneInfo.Timing
getTiming()
Return the timing of this pane.int
hashCode()
boolean
isFirst()
Return true if this is the first pane produced for the associated window.boolean
isLast()
Return true if this is the last pane that will be produced in the associated window.boolean
isUnknown()
Return true if there is no timing information for the currentPaneInfo
.java.lang.String
toString()
-
-
-
Field Detail
-
NO_FIRING
public static final PaneInfo NO_FIRING
PaneInfo
to use for elements on (and before) initial window assignment (including elements read from sources) before they have passed through aGroupByKey
and are associated with a particular trigger firing.
-
ON_TIME_AND_ONLY_FIRING
public static final PaneInfo ON_TIME_AND_ONLY_FIRING
PaneInfo
to use when there will be exactly one firing and it is on time.
-
-
Method Detail
-
createPane
public static PaneInfo createPane(boolean isFirst, boolean isLast, PaneInfo.Timing timing)
-
createPane
public static PaneInfo createPane(boolean isFirst, boolean isLast, PaneInfo.Timing timing, long index, long onTimeIndex)
Factory method to create aPaneInfo
with the specified parameters.
-
decodePane
public static PaneInfo decodePane(byte encodedPane)
-
isUnknown
public boolean isUnknown()
Return true if there is no timing information for the currentPaneInfo
. This typically indicates that the current element has not been assigned to windows or passed through an operation that executes triggers yet.
-
isFirst
public boolean isFirst()
Return true if this is the first pane produced for the associated window.
-
isLast
public boolean isLast()
Return true if this is the last pane that will be produced in the associated window.
-
getTiming
public PaneInfo.Timing getTiming()
Return the timing of this pane.
-
getIndex
public long getIndex()
The zero-based index of this trigger firing that produced this pane.This will return 0 for the first time the timer fires, 1 for the next time, etc.
A given (key, window, pane-index) is guaranteed to be unique in the output of a group-by-key operation.
-
getNonSpeculativeIndex
public long getNonSpeculativeIndex()
The zero-based index of this trigger firing among non-speculative panes.This will return 0 for the first non-
PaneInfo.Timing.EARLY
timer firing, 1 for the next one, etc.Always -1 for speculative data.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(@Nullable java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-