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.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    A Coder for encoding PaneInfo instances.
    static enum 
    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 final PaneInfo
    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.
    static final PaneInfo
    PaneInfo to use when there will be exactly one firing and it is on time.
  • Method Summary

    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 a PaneInfo with the specified parameters.
    static PaneInfo
    decodePane(byte encodedPane)
     
    boolean
     
    long
    The zero-based index of this trigger firing that produced this pane.
    long
    The zero-based index of this trigger firing among non-speculative panes.
    Return the timing of this pane.
    int
     
    boolean
    Return true if this is the first pane produced for the associated window.
    boolean
    Return true if this is the last pane that will be produced in the associated window.
    boolean
    Return true if there is no timing information for the current PaneInfo.
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 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.
    • 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.
    • 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