org.almendra.commons.events
Class EventRegistry

java.lang.Object
  extended by org.almendra.commons.events.EventRegistry
All Implemented Interfaces:
IEventRegistry
Direct Known Subclasses:
ClusterEventRegistry, LocalClusterEventRegistry

public class EventRegistry
extends java.lang.Object
implements IEventRegistry

Event registry that lets the user register for events they are interested in. When an event has occurred all the registered event handlers are invoked.

Author:
Oliver Plohmann

Field Summary
protected  EDU.oswego.cs.dl.util.concurrent.ReentrantLock lock
           
protected  java.util.Map registry
          Registry of events with event name and event notifiers for the event as values.
 
Constructor Summary
EventRegistry()
          Creates a new EventRegistry object.
 
Method Summary
 boolean deregister(java.lang.String eventName, IListEvaluator listEvaluator)
          Deregister for event.
protected  EventNotifier getEventNotifier(IListEvaluator listEvaluator)
           
 int getHandlerCount(java.lang.String eventName)
           
 boolean isRegistered(java.lang.String eventName)
          Answer whether an event is registred with the event registry.
 void occured(Event event)
          Notify the event registry that an event has occurred.
 void register(java.lang.String eventName, IListEvaluator listEvaluator)
          Register for an event providing a list of event handlers that should be invoked on event occurrence.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

registry

protected java.util.Map registry
Registry of events with event name and event notifiers for the event as values.


lock

protected EDU.oswego.cs.dl.util.concurrent.ReentrantLock lock
Constructor Detail

EventRegistry

public EventRegistry()
Creates a new EventRegistry object.

Method Detail

register

public void register(java.lang.String eventName,
                     IListEvaluator listEvaluator)
              throws java.lang.IllegalArgumentException
Register for an event providing a list of event handlers that should be invoked on event occurrence.

Specified by:
register in interface IEventRegistry
Parameters:
eventName -
notifier -
Throws:
java.lang.IllegalArgumentException
See Also:
org.almendra.commons.commons.events.IEventRegistry#register(org.almendra.commons.commons.events.Event, org.almendra.commons.commons.events.EventNotifier)

getEventNotifier

protected EventNotifier getEventNotifier(IListEvaluator listEvaluator)
Parameters:
listEvaluator -
Returns:

deregister

public boolean deregister(java.lang.String eventName,
                          IListEvaluator listEvaluator)
                   throws java.util.NoSuchElementException
Deregister for event. All event handlers for the event are removed from the event registry.

Specified by:
deregister in interface IEventRegistry
Parameters:
eventName -
Returns:
@see org.almendra.commons.commons.events.IEventRegistry#deregister(org.almendra.commons.commons.events.Event)
Throws:
java.util.NoSuchElementException

occured

public void occured(Event event)
Notify the event registry that an event has occurred. The event registry will notify all event handlers registered for the event.

Specified by:
occured in interface IEventRegistry
Parameters:
event - event that has occurred specified by its name.

isRegistered

public boolean isRegistered(java.lang.String eventName)
Answer whether an event is registred with the event registry.

Specified by:
isRegistered in interface IEventRegistry
Parameters:
eventName - name of the event
Returns:

getHandlerCount

public int getHandlerCount(java.lang.String eventName)
Specified by:
getHandlerCount in interface IEventRegistry