org.springframework.context.event
Class SimpleApplicationEventMulticaster

java.lang.Object
  extended byorg.springframework.context.event.SimpleApplicationEventMulticaster
All Implemented Interfaces:
ApplicationEventMulticaster

public class SimpleApplicationEventMulticaster
extends Object
implements ApplicationEventMulticaster

Simple implementation of the ApplicationEventMulticaster interface. Multicasts all events to all registered listeners.

Doesn't permit multiple instances of the same listener, as it keeps listeners in a HashSet.

Note that this class doesn't try to do anything clever to ensure thread safety if listeners are added or removed at runtime. A technique such as Copy-on-Write (Lea:137) could be used to ensure this, but the assumption in this version of this framework is that listeners will be added at application configuration time and not added or removed as the application runs.

All listeners are invoked in the calling thread. This allows the danger of a rogue listener blocking the entire application, but adds minimal overhead.

An alternative implementation could be more sophisticated in both these respects.

Author:
Rod Johnson, Juergen Hoeller

Constructor Summary
SimpleApplicationEventMulticaster()
           
 
Method Summary
 void addApplicationListener(ApplicationListener listener)
          Add a listener to be notified of all events.
 void multicastEvent(ApplicationEvent event)
          Multicast the given application event to appropriate listeners.
 void removeAllListeners()
          Remove all listeners registered with this multicaster.
 void removeApplicationListener(ApplicationListener listener)
          Remove a listener from the notification list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleApplicationEventMulticaster

public SimpleApplicationEventMulticaster()
Method Detail

addApplicationListener

public void addApplicationListener(ApplicationListener listener)
Description copied from interface: ApplicationEventMulticaster
Add a listener to be notified of all events.

Specified by:
addApplicationListener in interface ApplicationEventMulticaster
Parameters:
listener - the listener to add

removeApplicationListener

public void removeApplicationListener(ApplicationListener listener)
Description copied from interface: ApplicationEventMulticaster
Remove a listener from the notification list.

Specified by:
removeApplicationListener in interface ApplicationEventMulticaster
Parameters:
listener - the listener to remove

removeAllListeners

public void removeAllListeners()
Description copied from interface: ApplicationEventMulticaster
Remove all listeners registered with this multicaster. It will perform no action on event notification until more listeners are registered.

Specified by:
removeAllListeners in interface ApplicationEventMulticaster

multicastEvent

public void multicastEvent(ApplicationEvent event)
Description copied from interface: ApplicationEventMulticaster
Multicast the given application event to appropriate listeners.

Specified by:
multicastEvent in interface ApplicationEventMulticaster
Parameters:
event - the event to multicast


Copyright (C) 2003-2004 The Spring Framework Project.