org.firebirdsql.gds.ng.listeners

## Class AbstractListenerDispatcher<TListener>

- java.lang.Object
- - org.firebirdsql.gds.ng.listeners.AbstractListenerDispatcher<TListener>

- Type Parameters:
    `TListener` - Listener type
  All Implemented Interfaces:
    java.lang.Iterable<TListener>
  Direct Known Subclasses:
    AsynchronousChannelListenerDispatcher, DatabaseListenerDispatcher, ServiceListenerDispatcher, StatementListenerDispatcher, TransactionListenerDispatcher

      public class AbstractListenerDispatcher<TListener>
      extends java.lang.Object
      implements java.lang.Iterable<TListener>

  Dispatcher to maintain a list of listeners of type `TListener`
  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractListenerDispatcher()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addListener(TListener listener)` Adds the supplied listener to this dispatcher as a strongly referenced listener.
    `void` | `addWeakListener(TListener listener)` Adds the supplied listener to this dispatcher as a weakly referenced listener.
    `boolean` | `isShutdown()`
    `java.util.Iterator<TListener>` | `iterator()`
    `void` | `removeAllListeners()` Removes all listeners from this dispatcher.
    `void` | `removeListener(TListener listener)` Removes the supplied listener from this dispatcher (both weak and strong).
    `void` | `shutdown()` Shuts down this dispatcher and removes all listeners.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### AbstractListenerDispatcher

          public AbstractListenerDispatcher()

  - ### Method Detail

    - #### 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 java.util.Iterator<TListener> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<TListener>`

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.