Class AbstractListenerDispatcher<TListener>

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

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

    • AbstractListenerDispatcher

      public AbstractListenerDispatcher()
  • Method Details

    • addListener

      public final void addListener(TListener 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(TListener 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(TListener listener)
      Removes the supplied listener from this dispatcher (both weak and strong).
      Parameters:
      listener - Listener object
    • 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<TListener> iterator()
      Specified by:
      iterator in interface Iterable<TListener>