com.atlassian.event
Class DefaultEventManager

java.lang.Object
  extended by com.atlassian.event.DefaultEventManager
All Implemented Interfaces:
EventManager, java.util.EventListener, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener
Direct Known Subclasses:
AsyncEventManager

public class DefaultEventManager
extends java.lang.Object
implements EventManager, org.springframework.context.ApplicationListener, org.springframework.context.ApplicationContextAware

Manages the firing and receiving of events.

Any event passed to publishEvent(com.atlassian.event.Event) will be passed through Spring's event model, after which it will be returned to the EventManager for processing via onApplicationEvent(org.springframework.context.ApplicationEvent).

Plugin-based event listeners can register to receive events via registerListener(String, com.atlassian.event.EventListener)


Field Summary
protected  org.springframework.context.ApplicationContext applicationContext
           
protected  java.util.concurrent.Executor executor
          The Executor to use to run the EventListener.handleEvent(Event).
protected  java.util.List globalListeners
           
protected  java.util.Map listenersByClass
           
protected  java.util.Map listenersByKey
           
 
Constructor Summary
DefaultEventManager()
           
DefaultEventManager(java.util.concurrent.Executor executor)
           
 
Method Summary
protected  void handleEventListener(EventListener eventListener, Event event)
           
 void onApplicationEvent(org.springframework.context.ApplicationEvent event)
           
 void publishEvent(Event event)
          Publish an event that will be consumed by any listener which has registered to receive it.
 void registerListener(java.lang.String listenerKey, EventListener listener)
          Register a listener to receive events.
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setDefaultListeners(java.util.Map listenerKeyPairs)
          Allows for default events being wired in to the manager through an IoC.
 void unregisterListener(java.lang.String listenerKey)
          Unregister a listener so that it will no longer receive events.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

executor

protected final java.util.concurrent.Executor executor
The Executor to use to run the EventListener.handleEvent(Event). Defaults to an Executor that handles the event in the current thread


listenersByKey

protected final java.util.Map listenersByKey

listenersByClass

protected final java.util.Map listenersByClass

globalListeners

protected final java.util.List globalListeners

applicationContext

protected org.springframework.context.ApplicationContext applicationContext
Constructor Detail

DefaultEventManager

public DefaultEventManager()

DefaultEventManager

public DefaultEventManager(java.util.concurrent.Executor executor)
Method Detail

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware

publishEvent

public void publishEvent(Event event)
Description copied from interface: EventManager
Publish an event that will be consumed by any listener which has registered to receive it.

Specified by:
publishEvent in interface EventManager
Parameters:
event - the event to publish

onApplicationEvent

public void onApplicationEvent(org.springframework.context.ApplicationEvent event)
Specified by:
onApplicationEvent in interface org.springframework.context.ApplicationListener

registerListener

public void registerListener(java.lang.String listenerKey,
                             EventListener listener)
Description copied from interface: EventManager
Register a listener to receive events. If you register a listener with the same key as an existing listener, the previous listener with that key will be unregistered.

Specified by:
registerListener in interface EventManager
Parameters:
listenerKey - A unique key for this listener. If the listener is a plugin module, use the modules complete key
listener - The listener that is being registered

setDefaultListeners

public void setDefaultListeners(java.util.Map listenerKeyPairs)
Allows for default events being wired in to the manager through an IoC.

Parameters:
listenerKeyPairs - @Nullable - a Map of <String, EventListener>

unregisterListener

public void unregisterListener(java.lang.String listenerKey)
Description copied from interface: EventManager
Unregister a listener so that it will no longer receive events. If no listener is registered under this key, nothing will happen.

Specified by:
unregisterListener in interface EventManager
Parameters:
listenerKey - the key under which the listener was registered.

handleEventListener

protected void handleEventListener(EventListener eventListener,
                                   Event event)


Copyright © 2006-2009 Atlassian. All Rights Reserved.