Class AbstractListenerDispatcher<L>

java.lang.Object
org.firebirdsql.gds.ng.listeners.AbstractListenerDispatcher<L>
Type Parameters:
L - Listener type
All Implemented Interfaces:
Iterable<L>
Direct Known Subclasses:
AsynchronousChannelListenerDispatcher, DatabaseListenerDispatcher, ServiceListenerDispatcher, StatementListenerDispatcher, TransactionListenerDispatcher

public abstract class AbstractListenerDispatcher<L> extends Object implements Iterable<L>
Dispatcher to maintain a list of listeners of type L.
Since:
3.0
Author:
Mark Rotteveel
  • Constructor Details

    • AbstractListenerDispatcher

      public AbstractListenerDispatcher()
  • Method Details

    • addListener

      public final void addListener(L listener)
      Adds the supplied listener to this dispatcher as a strongly referenced listener.

      A call to this method has no effect after shutdown() has been called.

      Parameters:
      listener - Listener object
    • addWeakListener

      public final void addWeakListener(L listener)
      Adds the supplied listener to this dispatcher as a weakly referenced listener.

      A call to this method has no effect after shutdown() has been called.

      Attempts to add a listener that is already strongly referenced will be ignored.

      Parameters:
      listener - Listener object
    • removeListener

      public final void removeListener(L listener)
      Removes the supplied listener from this dispatcher (both weak and strong).
      Parameters:
      listener - Listener object
    • notify

      protected final void notify(Consumer<L> notificationHandler, String notificationLogName)
    • logError

      protected abstract void logError(String message, Throwable throwable)
    • removeAllListeners

      public final void removeAllListeners()
      Removes all listeners from this dispatcher.
    • shutdown

      public final void shutdown()
      Shuts down this dispatcher and removes all listeners.

      After shutdown calls to addListener(Object) are ignored.

    • isShutdown

      public final boolean isShutdown()
      Returns:
      true when this dispatcher has been shut down.
    • iterator

      public final Iterator<L> iterator()
      Specified by:
      iterator in interface Iterable<L>