Interface EventManager

All Known Implementing Classes:
DefaultEventManager, NoopEventManager

public interface EventManager
This class acts as bridge between an Object that wants to inform others about its current state or a change thereof (Publisher) and a list of objects interested in the Subject (Listeners).
Since:
3.1 before 3.1 this was a concrete class.
  • Method Details

    • isSingleThreaded

      boolean isSingleThreaded()
      Returns true if this EventManager is single-threaded. If so it will throw an exception on any attempt to register an unblocking listener or dispatch a non-blocking event.
      Since:
      1.2
    • addListener

      void addListener(Object listener, String methodName, Class<?> eventParameterClass, EventSubject subject)
      Register an EventListener for events sent by any sender.
      Throws:
      RuntimeException - if methodName is not found.
    • addNonBlockingListener

      void addNonBlockingListener(Object listener, String methodName, Class<?> eventParameterClass, EventSubject subject)
    • addListener

      void addListener(Object listener, String methodName, Class<?> eventParameterClass, EventSubject subject, Object sender)
      Register an EventListener for events sent by a specific sender.
      Parameters:
      listener - the object to be notified about events
      methodName - the name of the listener method to be invoked
      eventParameterClass - the class of the single event argument passed to methodName
      subject - the event subject that the listener is interested in
      sender - the object whose events the listener is interested in; null means 'any sender'.
      Throws:
      RuntimeException - if methodName is not found
    • addNonBlockingListener

      void addNonBlockingListener(Object listener, String methodName, Class<?> eventParameterClass, EventSubject subject, Object sender)
    • removeListener

      boolean removeListener(Object listener)
      Unregister the specified listener from all event subjects handled by this manager instance.
      Parameters:
      listener - the object to be unregistered
      Returns:
      true if listener could be removed for any existing subjects, else returns false.
    • removeAllListeners

      boolean removeAllListeners(EventSubject subject)
      Removes all listeners for a given subject.
    • removeListener

      boolean removeListener(Object listener, EventSubject subject)
      Unregister the specified listener for the events about the given subject.
      Parameters:
      listener - the object to be unregistered
      subject - the subject from which the listener is to be unregistered
      Returns:
      true if listener could be removed for the given subject, else returns false.
    • removeListener

      boolean removeListener(Object listener, EventSubject subject, Object sender)
      Unregister the specified listener for the events about the given subject and the given sender.
      Parameters:
      listener - the object to be unregistered
      subject - the subject from which the listener is to be unregistered
      sender - the object whose events the listener was interested in; null means 'any sender'.
      Returns:
      true if listener could be removed for the given subject, else returns false.
    • postEvent

      void postEvent(EventObject event, EventSubject subject)
      Sends an event to all registered objects about a particular subject. Event is sent synchronously, so the sender thread is blocked until all the listeners finish processing the event.
      Parameters:
      event - the event to be posted to the observers
      subject - the subject about which observers will be notified
      Throws:
      IllegalArgumentException - if event or subject are null
    • postNonBlockingEvent

      void postNonBlockingEvent(EventObject event, EventSubject subject)
      Sends an event to all registered objects about a particular subject. Event is queued by EventManager, releasing the sender thread, and is later dispatched in a separate thread.
      Parameters:
      event - the event to be posted to the observers
      subject - the subject about which observers will be notified
      Throws:
      IllegalArgumentException - if event or subject are null
      Since:
      1.1