Class EventListenerUtils
- java.lang.Object
-
- org.apache.sshd.common.util.EventListenerUtils
-
public final class EventListenerUtils extends Object
- Author:
- Apache MINA SSHD Project
-
-
Field Summary
Fields Modifier and Type Field Description static Comparator<EventListener>
LISTENER_INSTANCE_COMPARATOR
A special "comparator" whose only purpose is to ensure there are no same references in a listener's set - to be used in conjunction with aTreeSet
as its comparator
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T extends SshdEventListener>
TproxyWrapper(Class<T> listenerType, ClassLoader loader, Iterable<? extends T> listeners)
Provides proxy wrapper around anIterable
container of listener interface implementation.static <T extends SshdEventListener>
TproxyWrapper(Class<T> listenerType, Iterable<? extends T> listeners)
Provides proxy wrapper around anIterable
container of listener interface implementation.static <L extends SshdEventListener>
Set<L>synchronizedListenersSet()
static <L extends SshdEventListener>
Set<L>synchronizedListenersSet(Collection<? extends L> listeners)
-
-
-
Field Detail
-
LISTENER_INSTANCE_COMPARATOR
public static final Comparator<EventListener> LISTENER_INSTANCE_COMPARATOR
A special "comparator" whose only purpose is to ensure there are no same references in a listener's set - to be used in conjunction with aTreeSet
as its comparator
-
-
Method Detail
-
synchronizedListenersSet
public static <L extends SshdEventListener> Set<L> synchronizedListenersSet(Collection<? extends L> listeners)
- Type Parameters:
L
- Type ofSshdEventListener
contained in the set- Parameters:
listeners
- The listeners to pre-add to the create set - ignored if (@code null}/empty- Returns:
- A (synchronized)
Set
for containing the listeners ensuring that if same listener instance is added repeatedly only one instance is actually contained
-
synchronizedListenersSet
public static <L extends SshdEventListener> Set<L> synchronizedListenersSet()
- Type Parameters:
L
- Type ofSshdEventListener
contained in the set- Returns:
- A (synchronized)
Set
for containing the listeners ensuring that if same listener instance is added repeatedly only one instance is actually contained - See Also:
LISTENER_INSTANCE_COMPARATOR
-
proxyWrapper
public static <T extends SshdEventListener> T proxyWrapper(Class<T> listenerType, Iterable<? extends T> listeners)
Provides proxy wrapper around anIterable
container of listener interface implementation. Note: a listener interface is one whose invoked methods return onlyvoid
.- Type Parameters:
T
- Generic listener type- Parameters:
listenerType
- The expected listener interfacelisteners
- AnIterable
container of listeners to be invoked.Note(s):
-
The invocation order is same as the
Iterable
container -
If any of the invoked listener methods throws an exception, the rest of the listener are not invoked and the exception is propagated to the caller
-
It is up to the caller to ensure that the container does not change while the proxy is invoked
-
- Returns:
- A proxy wrapper implementing the same interface, but delegating the calls to the container
- See Also:
proxyWrapper(Class, ClassLoader, Iterable)
-
proxyWrapper
public static <T extends SshdEventListener> T proxyWrapper(Class<T> listenerType, ClassLoader loader, Iterable<? extends T> listeners)
Provides proxy wrapper around anIterable
container of listener interface implementation. Note: a listener interface is one whose invoked methods return onlyvoid
.- Type Parameters:
T
- GenericSshdEventListener
type- Parameters:
listenerType
- The expected listener interfaceloader
- TheClassLoader
to use for the proxylisteners
- AnIterable
container of listeners to be invoked.Note(s):
-
The invocation order is same as the
Iterable
container -
If any of the invoked listener methods throws an exception, the rest of the listener are not invoked and the exception is propagated to the caller
-
It is up to the caller to ensure that the container does not change while the proxy is invoked
-
- Returns:
- A proxy wrapper implementing the same interface, but delegating the calls to the container
- Throws:
IllegalArgumentException
- if listenerType is not an interface or anull
container has been provided- See Also:
proxyWrapper(Class, ClassLoader, Iterable)
-
-