- java.lang.Object
-
- org.pdfsam.eventstudio.Listeners
-
class Listeners extends java.lang.ObjectA thread-safe holder for the listeners
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classListeners.DefaultListenerWrapperListener wrapper around an explicitly definedListener(package private) static classListeners.ListenerReferenceHolderHolder for aListeners.ListenerWrapper(package private) static interfaceListeners.ListenerWrapperWraps a listener defined either explicitly or picked up by the annotation processorprivate static classListeners.ReflectiveListenerWrapperReflective invocation of an annotated listener
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.Class<?>,java.util.TreeSet<Listeners.ListenerReferenceHolder>>listenersprivate java.util.concurrent.locks.ReentrantReadWriteLocklockprivate static org.slf4j.LoggerLOG
-
Constructor Summary
Constructors Constructor Description Listeners()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) <T> voidadd(java.lang.Class<T> eventClass, Listener<T> listener, int priority, ReferenceStrength strength)java.util.Set<java.lang.Class<?>>addAll(java.lang.Object bean, java.util.List<Annotations.ReflectiveListenerDescriptor> descriptors)private java.util.TreeSet<Listeners.ListenerReferenceHolder>nullSafeGetListenerHolders(java.lang.Class<?> eventClass)(package private) java.util.List<Listeners.ListenerReferenceHolder>nullSafeGetListeners(java.lang.Class<?> eventClass)(package private) booleanremove(java.lang.Class<?> eventClass, Listeners.ListenerReferenceHolder listener)Removes the listener listening for the given event if present.(package private) <T> booleanremove(java.lang.Class<T> eventClass, Listener<T> listener)Removes the listener listening for the given event if present.private booleanremoveListenerAndSetIfNeeded(java.lang.Class<?> eventClass, Listeners.ListenerReferenceHolder listener, java.util.TreeSet<Listeners.ListenerReferenceHolder> set)
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
lock
private final java.util.concurrent.locks.ReentrantReadWriteLock lock
-
listeners
private final java.util.Map<java.lang.Class<?>,java.util.TreeSet<Listeners.ListenerReferenceHolder>> listeners
-
-
Method Detail
-
add
<T> void add(java.lang.Class<T> eventClass, Listener<T> listener, int priority, ReferenceStrength strength)
-
addAll
public java.util.Set<java.lang.Class<?>> addAll(java.lang.Object bean, java.util.List<Annotations.ReflectiveListenerDescriptor> descriptors)
-
nullSafeGetListenerHolders
private java.util.TreeSet<Listeners.ListenerReferenceHolder> nullSafeGetListenerHolders(java.lang.Class<?> eventClass)
-
remove
<T> boolean remove(java.lang.Class<T> eventClass, Listener<T> listener)Removes the listener listening for the given event if present. It also removes the listeners set from the map if the set is empty.- Returns:
- true if the listener was present and has been removed
-
remove
boolean remove(java.lang.Class<?> eventClass, Listeners.ListenerReferenceHolder listener)Removes the listener listening for the given event if present. It also removes the listeners set from the map if the set is empty.- Returns:
- true if the listener was present and has been removed
-
removeListenerAndSetIfNeeded
private boolean removeListenerAndSetIfNeeded(java.lang.Class<?> eventClass, Listeners.ListenerReferenceHolder listener, java.util.TreeSet<Listeners.ListenerReferenceHolder> set)
-
nullSafeGetListeners
java.util.List<Listeners.ListenerReferenceHolder> nullSafeGetListeners(java.lang.Class<?> eventClass)
- Returns:
- A sorted set containing the listeners queue for the given class.
-
-