Class 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 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  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 a GroupByKey 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.
    • 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 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 Detail

      • 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 java.lang.Object
      • equals

        public boolean equals​(@Nullable java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object