java.lang.Object
org.apache.beam.sdk.transforms.windowing.PaneInfo

public final class PaneInfo extends Object
Provides information about the pane an element belongs to. Every pane is implicitly associated with a window. Panes are observable only via the DoFn.ProcessContext.pane() method of the context passed to a DoFn.ProcessElement method.

Note: This does not uniquely identify a pane, and should not be used for comparisons.

  • Field Details

    • 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 a GroupByKey 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 Details

    • 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 a PaneInfo with the specified parameters.
    • createPane

      public static PaneInfo createPane(boolean isFirst, boolean isLast, PaneInfo.Timing timing, long index, long onTimeIndex, boolean containsElementMetadata)
      Factory method to create a PaneInfo 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 current PaneInfo. 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.
    • isElementMetadata

      public boolean isElementMetadata()
    • withElementMetadata

      public PaneInfo withElementMetadata(boolean elementMetadata)
    • 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 class Object
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object