Class MergedListener

All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable, NotificationQueue.Dependency, LivenessManager, LivenessNode, LivenessReferent, Serializable
Direct Known Subclasses:
BucketedChunkedAjMergedListener, SnapshotIncrementalListener, ZeroKeyChunkedAjMergedListener

public abstract class MergedListener extends LivenessArtifact implements NotificationQueue.Dependency
A merged listener has a collection of ListenerRecorders. Each one must complete before the merged listener fires its sole notification for the cycle. You must use a MergedListener if your result table has multiple sources, otherwise it is possible for a table to produce notifications more than once in a cycle; which is an error.
See Also:
  • Field Details

    • result

      protected QueryTable result
    • failed

      protected boolean failed
  • Constructor Details

  • Method Details

    • notifyChanges

      public void notifyChanges()
    • notifyOnError

      protected void notifyOnError(Throwable updateException)
      Notify that an error has occurred. Note: If this method is overridden, the child class is responsible for updating the failed member when failure processing is complete.
      Parameters:
      updateException - the exception causing the failure.
    • systemicResult

      protected boolean systemicResult()
    • notifyOnError

      protected void notifyOnError(Throwable updateException, QueryTable downstream)
    • notifyClientOnError

      protected void notifyClientOnError(Throwable originalException)
    • process

      protected abstract void process()
    • append

      public com.fishlib.base.log.LogOutput append(@NotNull com.fishlib.base.log.LogOutput logOutput)
      Specified by:
      append in interface com.fishlib.base.log.LogOutputAppendable
      Overrides:
      append in class ReferenceCounted
    • canExecute

      protected boolean canExecute(long step)
    • satisfied

      public boolean satisfied(long step)
      Description copied from interface: NotificationQueue.Dependency
      Is this ancestor satisfied? Note that this method must be safe to call on any thread.
      Specified by:
      satisfied in interface NotificationQueue.Dependency
      Parameters:
      step - The step for which we are testing satisfaction
      Returns:
      Whether the dependency is satisfied on step (and will not fire subsequent notifications)