faa.tg.util
Class AbstractListenerRegistrar<E extends java.util.EventObject,L extends java.util.EventListener>

java.lang.Object
  extended by faa.tg.util.AbstractListenerRegistrar<E,L>
All Implemented Interfaces:
ListenerRegistrar<E,L>
Direct Known Subclasses:
Scenario.ComputeCompleteRegistrar, Scenario.DepartureRegistrar, Scenario.EndOfEpochRegistrar, Scenario.ExecutiveRegistrar, Scenario.ExecutiveRegistrar.SubRegistrar, Scenario.FlightActivatedRegistrar, Scenario.FlightPendingRegistrar, Scenario.FlightTerminatedRegistrar, Scenario.GroupEventRegistrar, Scenario.SimEventChangeRegistrar, UniqueManager.ObjectAddedRegistrar

public abstract class AbstractListenerRegistrar<E extends java.util.EventObject,L extends java.util.EventListener>
extends java.lang.Object
implements ListenerRegistrar<E,L>

 Almost full, thread-safe implementation of ListenerRegistrar. To created a fully functional 
 ListenerRegistrar simply implement handle(E,L). Listeners may not add or remove the listeners
 in the registrar when handling an event.
 
 
See the source: AbstractListenerRegistrar.java

Version:
$Id: AbstractListenerRegistrar.java,v 3.7 2008/12/29 17:08:31 lykensj Exp $
Author:
Jonathan Lykens, Engility, Apr 14, 2008 12:30:14 PM
See Also:
ListenerRegistrar

Field Summary
private  boolean concurrentBlock
           
private  java.util.List<L> listeners
           
 
Constructor Summary
AbstractListenerRegistrar()
           
 
Method Summary
 boolean addListener(L listener)
          Add this listener to the registrar.
 void fireEvent(E event)
          Fires the given event to all registered listeners.
protected abstract  void handle(E event, L listener)
          Work around method for limitations in the event classes and current implementation in generics.
 boolean removeListener(L listener)
          Removes a given listener from the registrar.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

concurrentBlock

private boolean concurrentBlock

listeners

private final java.util.List<L extends java.util.EventListener> listeners
Constructor Detail

AbstractListenerRegistrar

public AbstractListenerRegistrar()
Method Detail

addListener

public final boolean addListener(L listener)
Add this listener to the registrar.

Specified by:
addListener in interface ListenerRegistrar<E extends java.util.EventObject,L extends java.util.EventListener>
Parameters:
listener - the listener to add.
return - true if the listener is added.
Returns:
true if the listener is added.

fireEvent

public void fireEvent(E event)
Fires the given event to all registered listeners.

Specified by:
fireEvent in interface ListenerRegistrar<E extends java.util.EventObject,L extends java.util.EventListener>
Parameters:
event - the event to fire.

removeListener

public final boolean removeListener(L listener)
Removes a given listener from the registrar.

Specified by:
removeListener in interface ListenerRegistrar<E extends java.util.EventObject,L extends java.util.EventListener>
Parameters:
listener - the listener to remove.
return - true if the listener is removed.

handle

protected abstract void handle(E event,
                               L listener)
Work around method for limitations in the event classes and current implementation in generics. In general, it should be a one-liner in the form listener.handleFoo(Foo);

Parameters:
event - the fired event to handle.
listner - the listener receiving the event.