org.apache.cayenne.event
Interface EventManager

All Known Implementing Classes:
DefaultEventManager

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 Summary
 void addListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject)
          Register an EventListener for events sent by any sender.
 void addListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject, java.lang.Object sender)
          Register an EventListener for events sent by a specific sender.
 void addNonBlockingListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject)
           
 void addNonBlockingListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject, java.lang.Object sender)
           
 boolean isSingleThreaded()
          Returns true if this EventManager is single-threaded.
 void postEvent(java.util.EventObject event, EventSubject subject)
          Sends an event to all registered objects about a particular subject.
 void postNonBlockingEvent(java.util.EventObject event, EventSubject subject)
          Sends an event to all registered objects about a particular subject.
 boolean removeAllListeners(EventSubject subject)
          Removes all listeners for a given subject.
 boolean removeListener(java.lang.Object listener)
          Unregister the specified listener from all event subjects handled by this manager instance.
 boolean removeListener(java.lang.Object listener, EventSubject subject)
          Unregister the specified listener for the events about the given subject.
 boolean removeListener(java.lang.Object listener, EventSubject subject, java.lang.Object sender)
          Unregister the specified listener for the events about the given subject and the given sender.
 

Method Detail

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(java.lang.Object listener,
                 java.lang.String methodName,
                 java.lang.Class<?> eventParameterClass,
                 EventSubject subject)
Register an EventListener for events sent by any sender.

Throws:
java.lang.RuntimeException - if methodName is not found.

addNonBlockingListener

void addNonBlockingListener(java.lang.Object listener,
                            java.lang.String methodName,
                            java.lang.Class<?> eventParameterClass,
                            EventSubject subject)

addListener

void addListener(java.lang.Object listener,
                 java.lang.String methodName,
                 java.lang.Class<?> eventParameterClass,
                 EventSubject subject,
                 java.lang.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:
java.lang.RuntimeException - if methodName is not found

addNonBlockingListener

void addNonBlockingListener(java.lang.Object listener,
                            java.lang.String methodName,
                            java.lang.Class<?> eventParameterClass,
                            EventSubject subject,
                            java.lang.Object sender)

removeListener

boolean removeListener(java.lang.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(java.lang.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(java.lang.Object listener,
                       EventSubject subject,
                       java.lang.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(java.util.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:
java.lang.IllegalArgumentException - if event or subject are null

postNonBlockingEvent

void postNonBlockingEvent(java.util.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:
java.lang.IllegalArgumentException - if event or subject are null
Since:
1.1


Copyright © 2001-2012 Apache Cayenne. All Rights Reserved.