Class DirectEventDispatcher

  • All Implemented Interfaces:
    EventDispatcher, Listenable<EventListener<?>>

    public final class DirectEventDispatcher
    extends AbstractEventDispatcher
    A concrete implementation of AbstractEventDispatcher 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
    • Constructor Detail

      • DirectEventDispatcher

        public DirectEventDispatcher()