Package io.microsphere.event
Class DirectEventDispatcher
- java.lang.Object
-
- io.microsphere.event.AbstractEventDispatcher
-
- io.microsphere.event.DirectEventDispatcher
-
- All Implemented Interfaces:
EventDispatcher
,Listenable<EventListener<?>>
public final class DirectEventDispatcher extends AbstractEventDispatcher
A concrete implementation ofAbstractEventDispatcher
that uses a direct (synchronous) execution model.This class dispatches events directly on the calling thread, ensuring sequential execution of listeners. It is suitable for simple use cases where asynchronous or parallel processing is not required.
Key Features
- Synchronous Dispatching: Events are processed immediately on the thread that calls
AbstractEventDispatcher.dispatch(Event)
. - Ordered Listener Execution: Listeners are executed in the order determined by their priority (via the
Prioritized
interface). - Thread-Safe Registration: Listener registration and removal operations are thread-safe.
Example Usage
// Create an instance of DirectEventDispatcher DirectEventDispatcher dispatcher = new DirectEventDispatcher(); // Register a listener dispatcher.addEventListener((EventListener<MyEvent>) event -> System.out.println("Event handled!")); // Dispatch an event dispatcher.dispatch(new MyEvent());
Execution Model
All event listeners are executed sequentially on the same thread that invokes the
AbstractEventDispatcher.dispatch(Event)
method. This ensures predictable execution order but may impact performance if any listener performs long-running operations.- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
AbstractEventDispatcher
,EventDispatcher
,EventListener
,Prioritized
-
-
Field Summary
-
Fields inherited from interface io.microsphere.event.EventDispatcher
DIRECT_EXECUTOR
-
-
Constructor Summary
Constructors Constructor Description DirectEventDispatcher()
-
Method Summary
-
Methods inherited from class io.microsphere.event.AbstractEventDispatcher
addEventListener, dispatch, doInListener, getAllEventListeners, getExecutor, loadEventListenerInstances, removeEventListener, sortedListeners, sortedListeners
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.microsphere.event.Listenable
addEventListeners, addEventListeners, removeAllEventListeners, removeEventListeners
-
-