de.bsvrz.dav.daf.main.impl.config
Class DafMutableCollectionSupport

java.lang.Object
  extended by de.bsvrz.dav.daf.main.impl.config.DafMutableCollectionSupport

public class DafMutableCollectionSupport
extends Object

Hilfsklasse zur Verwaltung von Anmeldungen auf Änderungen der Elemente von dynamischen Typen und dynamischen Mengen.

Author:
Kappich Systemberatung

Nested Class Summary
private static class DafMutableCollectionSupport.ListenersAndElements
          Hilfsobjekt mit den angemeldeten Listenern etc.
 
Field Summary
private static Debug _debug
          Logger für Debug-Ausgaben.
private  MutableCollection _mutableCollection
          Zugehörige dynamische Menge oder dynamischer Typ.
private  HashMap<Short,DafMutableCollectionSupport.ListenersAndElements> _simVariant2ListenersAndElements
          Map mit der Zuordnung von Simulationsvarianten zu einem Hilfsobjekt an dem die Liste der zugehörigen angemeldeten Listenern etc.
 
Constructor Summary
DafMutableCollectionSupport(MutableCollection mutableCollection)
          Erzeugt ein neues Verwaltungsobjekt.
 
Method Summary
 void addChangeListener(short simulationVariant, MutableCollectionChangeListener changeListener)
          Meldet einen Listener auf Änderungen der Elemente einer dynamischen Menge oder eines dynamischen Typs unter Berücksichtigung der Simulationsvariante an.
 void collectionChanged(short simulationVariant, List<SystemObject> addedElements, List<SystemObject> removedElements)
          Informiert die angemeldeten Listener über hinzugefügte oder entfernte Elemente der zugehörigen dynamischen Zusammenstellung.
private  void ensureSubscribedState(DafMutableCollectionSupport.ListenersAndElements listenersAndElements, short simulationVariant)
          Stellt sicher, dass eine und höchstens eine Anmeldung bei der Konfiguration auf Änderungen der Elemente der zugehörigen dynamischen Zusammenstellung unter der angegebenen Simulationsvariante vorliegt.
private  void ensureUnsubscribedState(DafMutableCollectionSupport.ListenersAndElements listenersAndElements, short simulationVariant)
          Stellt sicher, dass keine Anmeldung bei der Konfiguration auf Änderungen der Elemente der zugehörigen dynamischen Zusammenstellung unter der angegebenen Simulationsvariante vorliegt.
 List<SystemObject> getElements(short simulationVariant)
          Bestimmt die aktuellen Elemente der zugehörigen dynamischen Menge oder des zugehörigen dynamischen Typs unter Berücksichtigung der Simulationsvariante.
private  DafMutableCollectionSupport.ListenersAndElements getListenersAndElements(short simulationVariant, boolean create)
          Bestimmt das Hilfsobjekt mit den angemeldeten Listenern etc.
 boolean removeChangeListener(short simulationVariant, MutableCollectionChangeListener changeListener)
          Meldet einen zuvor angemeldeten Listener wieder ab.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug
Logger für Debug-Ausgaben.


_mutableCollection

private MutableCollection _mutableCollection
Zugehörige dynamische Menge oder dynamischer Typ.


_simVariant2ListenersAndElements

private HashMap<Short,DafMutableCollectionSupport.ListenersAndElements> _simVariant2ListenersAndElements
Map mit der Zuordnung von Simulationsvarianten zu einem Hilfsobjekt an dem die Liste der zugehörigen angemeldeten Listenern etc. gespeichert ist.

Constructor Detail

DafMutableCollectionSupport

public DafMutableCollectionSupport(MutableCollection mutableCollection)
Erzeugt ein neues Verwaltungsobjekt.

Parameters:
mutableCollection - dynamische Menge oder dynamischer Typ dessen Anmeldungen durch dieses Objekt verwaltet werden.
Method Detail

addChangeListener

public void addChangeListener(short simulationVariant,
                              MutableCollectionChangeListener changeListener)
Meldet einen Listener auf Änderungen der Elemente einer dynamischen Menge oder eines dynamischen Typs unter Berücksichtigung der Simulationsvariante an.

Parameters:
simulationVariant - Simulationsvariante unter der die dynamische Zusammenstellung betrachtet werden soll.
changeListener - Listener, der bei Änderungen der Elemente informiert werden soll.

removeChangeListener

public boolean removeChangeListener(short simulationVariant,
                                    MutableCollectionChangeListener changeListener)
Meldet einen zuvor angemeldeten Listener wieder ab.

Parameters:
simulationVariant - Simulationsvariante der entsprechenden Anmeldung.
changeListener - Listener der entsprechenden Anmeldung.
Returns:
true, falls ein entsprechender Listener gefunden und abgemeldet wurde.

collectionChanged

public void collectionChanged(short simulationVariant,
                              List<SystemObject> addedElements,
                              List<SystemObject> removedElements)
Informiert die angemeldeten Listener über hinzugefügte oder entfernte Elemente der zugehörigen dynamischen Zusammenstellung.

Parameters:
simulationVariant - Simulationsvariante auf die sich die Änderung bezieht.
addedElements - Hinzugefügte Elemente.
removedElements - Entfernte Elemente.

ensureSubscribedState

private void ensureSubscribedState(DafMutableCollectionSupport.ListenersAndElements listenersAndElements,
                                   short simulationVariant)
Stellt sicher, dass eine und höchstens eine Anmeldung bei der Konfiguration auf Änderungen der Elemente der zugehörigen dynamischen Zusammenstellung unter der angegebenen Simulationsvariante vorliegt.

Parameters:
listenersAndElements - Hilfsobjekt aus der Map _simVariant2ListenersAndElements für die entsprechende Simulationsvariante.
simulationVariant - Simulationsvariante, die angemeldet werden soll.

ensureUnsubscribedState

private void ensureUnsubscribedState(DafMutableCollectionSupport.ListenersAndElements listenersAndElements,
                                     short simulationVariant)
Stellt sicher, dass keine Anmeldung bei der Konfiguration auf Änderungen der Elemente der zugehörigen dynamischen Zusammenstellung unter der angegebenen Simulationsvariante vorliegt.

Parameters:
listenersAndElements - Hilfsobjekt aus der Map _simVariant2ListenersAndElements für die entsprechende Simulationsvariante.
simulationVariant - Simulationsvariante, die abgemeldet werden soll.

getListenersAndElements

private DafMutableCollectionSupport.ListenersAndElements getListenersAndElements(short simulationVariant,
                                                                                 boolean create)
Bestimmt das Hilfsobjekt mit den angemeldeten Listenern etc. aus der Map _simVariant2ListenersAndElements für die entsprechende Simulationsvariante.

Parameters:
simulationVariant - Simulationsvariante des Hilfsobjekts mit den gewünschten Listenern
create - Wenn true, dann wird eine neues Hilfsobjekt erzeugt und in die Map eingetragen, wenn noch kein Hilfsobjekt mit den angemeldeten Listenern für diese Simulationsvariante vorhanden war.
Returns:
Hilfsobjekt mit den gewünschten Listenern etc. oder null, falls kein Hilfsobjekt vorhanden war und kein neues erzeugt werden sollte.

getElements

public List<SystemObject> getElements(short simulationVariant)
Bestimmt die aktuellen Elemente der zugehörigen dynamischen Menge oder des zugehörigen dynamischen Typs unter Berücksichtigung der Simulationsvariante.

Parameters:
simulationVariant - Simulationsvariante unter der die dynamische Zusammenstellung betrachtet werden soll.
Returns:
Aktuelle Elemente der dynamischen Menge oder des dynamischen Typs unter Berücksichtigung der Simulationsvariante.