org.springframework.context.event
Class ApplicationEventMulticasterImpl

java.lang.Object
  extended byorg.springframework.context.event.ApplicationEventMulticasterImpl
All Implemented Interfaces:
ApplicationEventMulticaster, ApplicationListener, java.util.EventListener

public class ApplicationEventMulticasterImpl
extends java.lang.Object
implements ApplicationEventMulticaster

Simple implementation of the ApplicationEventMulticaster interface.

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
ApplicationEventMulticasterImpl()
           
 
Method Summary
 void addApplicationListener(ApplicationListener listener)
          Add a listener to be notified of all events.
 void onApplicationEvent(ApplicationEvent event)
          Handle an application event
 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

ApplicationEventMulticasterImpl

public ApplicationEventMulticasterImpl()
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

onApplicationEvent

public void onApplicationEvent(ApplicationEvent event)
Description copied from interface: ApplicationListener
Handle an application event

Specified by:
onApplicationEvent in interface ApplicationListener
Parameters:
event - the event to respond to

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


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