Package 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 abstract class AbstractListenerDispatcher<TListener> extends java.lang.Object implements java.lang.Iterable<TListener>
Dispatcher to maintain a list of listeners of typeTListener
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Constructor Summary
Constructors Constructor Description AbstractListenerDispatcher()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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()
protected abstract void
logError(java.lang.String message, java.lang.Throwable throwable)
protected void
notify(java.util.function.Consumer<TListener> notificationHandler, java.lang.String notificationLogName)
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.
-
-
-
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
-
notify
protected final void notify(java.util.function.Consumer<TListener> notificationHandler, java.lang.String notificationLogName)
-
logError
protected abstract void logError(java.lang.String message, java.lang.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.
-
-