Package com.norconex.commons.lang.event
Class EventManager
java.lang.Object
com.norconex.commons.lang.event.EventManager
Manages event listeners and logs events. New event managers can be constructed with a "parent" event manager. When chained as such, event on a particular event manager are bubbled up to the parents but never down to children. Events are logged by the manager in the chain that first fires the event.
When an event holds an exception, a summarized version of it is logged by default. To have the full stack trace logged by this event manager, set the log level for the corresponding class to `DEBUG` (or more verbose).
- Since:
- 2.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(EventListener<Event> listener) Adds an event listener.voidaddListeners(Collection<EventListener<Event>> listeners) Adds event listeners.voidAdds listeners found in an object graph.voidbindParent(EventManager parentEventManager) voidClears all previously added listeners.voidvoidintGets the number of event listeners registered with this event manager.Returns an unmodifiable list of event listeners in this event manager.voidbooleanremoveListener(EventListener<Event> listener) Removes a listener instance.booleanremoveListeners(Collection<EventListener<Event>> listeners) Removes listener instances.
-
Constructor Details
-
EventManager
public EventManager() -
EventManager
Wraps a parent event manager. Events fired on this event manager will be fired on this instance listeners first, then its parent listeners. Modifying the list of listeners in this instance does not impact listeners of the parent event manager.- Parameters:
parentEventManager- parent event manager
-
-
Method Details
-
addListener
Adds an event listener. Event listeners are added by "identity", meaning you can have multiple listeners coexisting even if their test for equality returnstrue. Adding anullevent listener has no effect.- Parameters:
listener- an event listener
-
addListeners
Adds event listeners. Event listeners are added by "identity", meaning you can have multiple listeners coexisting even if their test for equality returnstrue. Adding anullcollection has no effect.- Parameters:
listeners- event listeners
-
addListenersFromScan
Adds listeners found in an object graph. Recursively queries the object bean properties for nonnullobjects implementingEventListener.- Parameters:
obj- the object to retrive listeners from
-
getListeners
Returns an unmodifiable list of event listeners in this event manager.- Returns:
- list of listeners
-
removeListener
Removes a listener instance. Removal is done by "identity", meaning you can have listeners that are not removed despite testingtruefor equality. Removing anulllistener has no effect.- Parameters:
listener- the listener instance to remove- Returns:
trueif a matching instance was removed
-
removeListeners
Removes listener instances. Removal is done by "identity", meaning you can have listeners that are not removed despite testingtruefor equality. Removing anullcollection has no effect.- Parameters:
listeners- listener instances to remove- Returns:
trueif one or more listeners were removed
-
clearListeners
public void clearListeners()Clears all previously added listeners. Does not affect listeners associated with a parent event manager. -
getListenerCount
public int getListenerCount()Gets the number of event listeners registered with this event manager. Listeners attached to a parent are not counted.- Returns:
- listener count
-
fire
-
fire
-
bindParent
-
log
-