|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.cayenne.event.DefaultEventManager
public class DefaultEventManager
A default implementation of EventManager
.
Field Summary | |
---|---|
protected java.util.List<org.apache.cayenne.event.DefaultEventManager.Dispatch> |
eventQueue
|
protected boolean |
singleThread
|
protected boolean |
stopped
|
protected java.util.Map<EventSubject,org.apache.cayenne.event.DispatchQueue> |
subjects
|
Constructor Summary | |
---|---|
DefaultEventManager()
Creates a multithreaded EventManager using default thread count. |
|
DefaultEventManager(int dispatchThreadCount)
Creates an EventManager starting the specified number of threads for multithreaded dispatching. |
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. |
protected void |
addListener(java.lang.Object listener,
java.lang.String methodName,
java.lang.Class<?> eventParameterClass,
EventSubject subject,
java.lang.Object sender,
boolean blocking)
|
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. |
boolean |
isStopped()
Returns true if the EventManager was stopped via shutdown() method. |
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. |
void |
shutdown()
Stops event threads. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.util.Map<EventSubject,org.apache.cayenne.event.DispatchQueue> subjects
protected java.util.List<org.apache.cayenne.event.DefaultEventManager.Dispatch> eventQueue
protected boolean singleThread
protected volatile boolean stopped
Constructor Detail |
---|
public DefaultEventManager()
public DefaultEventManager(int dispatchThreadCount)
Method Detail |
---|
public boolean isStopped()
shutdown()
method.
public boolean isSingleThreaded()
isSingleThreaded
in interface EventManager
@BeforeScopeEnd public void shutdown()
public void addListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject)
EventListener
for events sent by any sender.
addListener
in interface EventManager
java.lang.RuntimeException
- if methodName
is not foundaddListener(Object, String, Class, EventSubject, Object)
public void addNonBlockingListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject)
addNonBlockingListener
in interface EventManager
public void addListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject, java.lang.Object sender)
EventListener
for events sent by a specific sender.
addListener
in interface EventManager
listener
- the object to be notified about eventsmethodName
- the name of the listener method to be invokedeventParameterClass
- the class of the single event argument passed to
methodName
subject
- the event subject that the listener is interested insender
- the object whose events the listener is interested in;
null
means 'any sender'.
java.lang.RuntimeException
- if methodName
is not foundpublic void addNonBlockingListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject, java.lang.Object sender)
addNonBlockingListener
in interface EventManager
protected void addListener(java.lang.Object listener, java.lang.String methodName, java.lang.Class<?> eventParameterClass, EventSubject subject, java.lang.Object sender, boolean blocking)
public boolean removeListener(java.lang.Object listener)
removeListener
in interface EventManager
listener
- the object to be unregistered
true
if listener
could be removed for any
existing subjects, else returns false
.public boolean removeAllListeners(EventSubject subject)
removeAllListeners
in interface EventManager
public boolean removeListener(java.lang.Object listener, EventSubject subject)
removeListener
in interface EventManager
listener
- the object to be unregisteredsubject
- the subject from which the listener is to be unregistered
true
if listener
could be removed for the given
subject, else returns false
.public boolean removeListener(java.lang.Object listener, EventSubject subject, java.lang.Object sender)
removeListener
in interface EventManager
listener
- the object to be unregisteredsubject
- the subject from which the listener is to be unregisteredsender
- the object whose events the listener was interested in;
null
means 'any sender'.
true
if listener
could be removed for the given
subject, else returns false
.public void postEvent(java.util.EventObject event, EventSubject subject)
postEvent
in interface EventManager
event
- the event to be posted to the observerssubject
- the subject about which observers will be notified
java.lang.IllegalArgumentException
- if event or subject are nullpublic void postNonBlockingEvent(java.util.EventObject event, EventSubject subject)
postNonBlockingEvent
in interface EventManager
event
- the event to be posted to the observerssubject
- the subject about which observers will be notified
java.lang.IllegalArgumentException
- if event or subject are null
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |