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

java.lang.Object
  extended by de.bsvrz.dav.daf.main.impl.config.DafSystemObject
      extended by de.bsvrz.dav.daf.main.impl.config.DafConfigurationObject
          extended by de.bsvrz.dav.daf.main.impl.config.DafObjectSet
              extended by de.bsvrz.dav.daf.main.impl.config.DafMutableSet
All Implemented Interfaces:
ConfigurationCommunicationInterface, ConfigurationObject, MutableCollection, MutableSet, ObjectSet, SystemObject, SystemObjectCollection, Comparable

public class DafMutableSet
extends DafObjectSet
implements MutableSet

Mit dieser Klasse kann auf dynamische Mengen zugegriffen werden. Diesen Mengen können online Elemente hinzugefügt und entfernt, ohne dass eine neue Konfigurationsversion erstellt werden muss.

Author:
Kappich Systemberatung

Field Summary
(package private)  DafConfigurationCommunicationListenerSupport _configComSupport
          Verwaltet die Listener für die Komunikation mit der Konfiguration
private  DafDataModel _configuration
          Repräsentiert die Konfiguration.
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  DafMutableCollectionSupport _mutableCollectionSupport
          Objekt zur Verwaltung von Anmeldungen auf Änderungen der Elemente dieses Typs.
private  HashMap<MutableSetChangeListener,MutableCollectionChangeListener> _observer2listener
           
private  ConfigurationRequester _requester
          Hiermit werden Konfigurationsanfragen gestellt.
 
Fields inherited from class de.bsvrz.dav.daf.main.impl.config.DafObjectSet
_setElementIds, _setElements
 
Fields inherited from class de.bsvrz.dav.daf.main.impl.config.DafSystemObject
_dataModel, _internType, ASPECT, ATTRIBUTE, ATTRIBUTE_GROUP, ATTRIBUTE_GROUP_USAGE, ATTRIBUTE_LIST_TYPE, CLIENT_APPLICATION, CONFIGURATION_APPLICATION, CONFIGURATION_AREA, CONFIGURATION_AUTHORITY, CONFIGURATION_OBJECT, CONFIGURATION_OBJECT_TYPE, DAV_APPLICATION, DYNAMIC_OBJECT, DYNAMIC_OBJECT_TYPE, FLOATING_POINT_NUMBER_ATTRIBUTE_TYPE, INTEGER_ATTRIBUTE_TYPE, INTEGER_VALUE_RANGE, INTEGER_VALUE_STATE, MUTABLE_SET, NON_MUTABLE_SET, NULL_OBJECT, OBJECT_DELETED, OBJECT_EXISTS, OBJECT_INVALID, OBJECT_SET_TYPE, OBJECT_SET_USE, REFERENCE_ATTRIBUTE_TYPE, STRING_ATTRIBUTE_TYPE, SYSTEM_OBJECT_TYPE, TIME_ATTRIBUTE_TYPE
 
Constructor Summary
DafMutableSet(DafDataModel dataModel)
          Erzeugt ein neues Objekt dessen Eigenschaften im Anschluss mit der read-Methode eingelesen werden sollten.
DafMutableSet(long id, String pid, String name, long typId, byte state, String error, DafDataModel dataModel, short validFromVersionNumber, short validToVersionNumber, long responsibleObjectId, long[] setIds, ArrayList setElementIds)
          Erzeugt ein Objekt einer dynamischen Menge.
 
Method Summary
 void add(SystemObject object)
          Erweitert die Menge um ein weiteres Element.
 void addChangeListener(MutableSetChangeListener observer)
          Meldet einen Beobachter an, der informiert wird, falls sich an der dynamischen Menge etwas ändert.
 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 addConfigurationCommunicationChangeListener(ConfigurationCommunicationChangeListener listener)
          Meldet einen Beobachter für die Zustandsänderungen der Kommunikation mit der verwaltenden Konfigurationen dieses Objekts an.
 void collectionChanged(short simVariant, List<SystemObject> addedElements, List<SystemObject> removedElements)
          Leitet die Aktualisierungsnachrichten bzgl.
 void configurationCommunicationChange(boolean configComStatus)
           
 List<SystemObject> getElements()
          Gibt die Elemente zurück, die sich aktuell in der dynamischen Menge befinden.
 List getElements(long time)
          Gibt die Elemente zurück, die sich zu einem bestimmten Zeitpunkt in der dynamischen Menge befinden.
private  List getElements(long startTime, long endTime, boolean validDuringEntirePeriod)
          Diese interne Methode führt die Anfrage nach allen Elementen dieser Menge bei der Konfiguration durch.
 List<SystemObject> getElements(short simulationVariant)
          Bestimmt die aktuellen Elemente einer dynamischen Menge oder eines dynamischen Typs unter Berücksichtigung der Simulationsvariante.
 List getElementsDuringPeriod(long startTime, long endTime)
          Gibt die Elemente zurück, die während des gesamten Zeitraumes gültig waren.
 List getElementsInPeriod(long startTime, long endTime)
          Gibt die Elemente zurück, die innerhalb des angegebenen Zeitraumes gültig sind bzw.
 boolean isConfigurationCommunicationActive()
          Gibt an, ob die Kommunikation mit der verwaltenden Konfiguration dieses Objekts aktiv ist.
 void remove(SystemObject object)
          Entfernt ein Element der Menge.
 void removeChangeListener(MutableSetChangeListener observer)
          Meldet einen Beobachter wieder ab.
 void removeChangeListener(short simulationVariant, MutableCollectionChangeListener changeListener)
          Meldet einen zuvor angemeldeten Listener wieder ab.
 void removeConfigurationCommunicationChangeListener(ConfigurationCommunicationChangeListener listener)
          Meldet einen Beobachter für die Zustandsänderungen dieser Kommunikation wieder ab.
 void update(SystemObject[] addedObjects, SystemObject[] removedObjects)
          Diese Methode informiert alle Beobachter über Veränderungen an der dynamischen Menge.
 
Methods inherited from class de.bsvrz.dav.daf.main.impl.config.DafObjectSet
add, getObjectSetType, parseToString, read, remove, write
 
Methods inherited from class de.bsvrz.dav.daf.main.impl.config.DafConfigurationObject
addSet, duplicate, duplicate, getMutableSet, getNonMutableSet, getNotValidSince, getObjectSet, getObjectSets, getValidSince, isValid, removeSet, revalidate
 
Methods inherited from class de.bsvrz.dav.daf.main.impl.config.DafSystemObject
compareTo, equals, getConfigurationArea, getConfigurationAreaId, getConfigurationData, getConfigurationData, getConfigurationData, getDataModel, getId, getInfo, getInternType, getName, getNameOrPidOrId, getObject, getPid, getPidOrId, getPidOrNameOrId, getState, getType, getUsedAttributeGroupUsages, hashCode, invalidate, isOfType, isOfType, setConfigurationData, setConfigurationData, setConfigurationData, setName, setState, storeName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.ObjectSet
add, getObjectSetType, remove
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.ConfigurationObject
addSet, duplicate, duplicate, getMutableSet, getNonMutableSet, getNotValidSince, getObjectSet, getObjectSets, getValidSince, removeSet, revalidate
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.SystemObject
getConfigurationArea, getConfigurationData, getConfigurationData, getConfigurationData, getDataModel, getId, getInfo, getName, getNameOrPidOrId, getPid, getPidOrId, getPidOrNameOrId, getType, getUsedAttributeGroupUsages, invalidate, isOfType, isOfType, isValid, setConfigurationData, setConfigurationData, setConfigurationData, setName, toString
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.ConfigurationObject
addSet, duplicate, duplicate, getMutableSet, getNonMutableSet, getNotValidSince, getObjectSet, getObjectSets, getValidSince, removeSet, revalidate
 
Methods inherited from interface de.bsvrz.dav.daf.main.config.SystemObject
getConfigurationArea, getConfigurationData, getConfigurationData, getConfigurationData, getDataModel, getId, getInfo, getName, getNameOrPidOrId, getPid, getPidOrId, getPidOrNameOrId, getType, getUsedAttributeGroupUsages, invalidate, isOfType, isOfType, isValid, setConfigurationData, setConfigurationData, setConfigurationData, setName, toString
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

_debug

private static final Debug _debug
DebugLogger für Debug-Ausgaben


_configuration

private final DafDataModel _configuration
Repräsentiert die Konfiguration.


_requester

private ConfigurationRequester _requester
Hiermit werden Konfigurationsanfragen gestellt.


_configComSupport

DafConfigurationCommunicationListenerSupport _configComSupport
Verwaltet die Listener für die Komunikation mit der Konfiguration


_mutableCollectionSupport

private DafMutableCollectionSupport _mutableCollectionSupport
Objekt zur Verwaltung von Anmeldungen auf Änderungen der Elemente dieses Typs.


_observer2listener

private HashMap<MutableSetChangeListener,MutableCollectionChangeListener> _observer2listener
Constructor Detail

DafMutableSet

public DafMutableSet(DafDataModel dataModel)
Erzeugt ein neues Objekt dessen Eigenschaften im Anschluss mit der read-Methode eingelesen werden sollten.

Parameters:
dataModel - DataModel Implementierung, der das neue Objekt zugeordnet ist.

DafMutableSet

public DafMutableSet(long id,
                     String pid,
                     String name,
                     long typId,
                     byte state,
                     String error,
                     DafDataModel dataModel,
                     short validFromVersionNumber,
                     short validToVersionNumber,
                     long responsibleObjectId,
                     long[] setIds,
                     ArrayList setElementIds)
Erzeugt ein Objekt einer dynamischen Menge.

Method Detail

getElements

public List<SystemObject> getElements()
Gibt die Elemente zurück, die sich aktuell in der dynamischen Menge befinden.

Specified by:
getElements in interface SystemObjectCollection
Specified by:
getElements in class DafObjectSet
Returns:
die Elemente, die aktuell in der dynamischen Menge sind

getElements

public List getElements(long time)
Gibt die Elemente zurück, die sich zu einem bestimmten Zeitpunkt in der dynamischen Menge befinden.

Specified by:
getElements in interface SystemObjectCollection
Overrides:
getElements in class DafObjectSet
Parameters:
time - der zu betrachtende Zeitpunkt
Returns:
die Elemente, die zum angegebenen Zeitpunkt in der dynamischen Menge sind

getElementsInPeriod

public List getElementsInPeriod(long startTime,
                                long endTime)
Gibt die Elemente zurück, die innerhalb des angegebenen Zeitraumes gültig sind bzw. gültig waren.

Specified by:
getElementsInPeriod in interface SystemObjectCollection
Overrides:
getElementsInPeriod in class DafObjectSet
Parameters:
startTime - Beginn des zu betrachtenden Zeitraumes
endTime - Ende des zu betrachtenden Zeitraumes
Returns:
die Elemente, die innerhalb des angegebenen Zeitraumes in der dynamischen Menge sind bzw. waren

getElementsDuringPeriod

public List getElementsDuringPeriod(long startTime,
                                    long endTime)
Gibt die Elemente zurück, die während des gesamten Zeitraumes gültig waren.

Specified by:
getElementsDuringPeriod in interface SystemObjectCollection
Overrides:
getElementsDuringPeriod in class DafObjectSet
Parameters:
startTime - Beginn des zu betrachtenden Zeitraumes
endTime - Ende des zu betrachtenden Zeitraumes
Returns:
die Elemente, die während des gesamten Zeitraums in der dynamischen Menge waren

getElements

private List getElements(long startTime,
                         long endTime,
                         boolean validDuringEntirePeriod)
Diese interne Methode führt die Anfrage nach allen Elementen dieser Menge bei der Konfiguration durch.

Parameters:
startTime - Beginn des zu betrachtenden Zeitraumes
endTime - Ende des zu betrachtenden Zeitraumes
validDuringEntirePeriod - ob die Elemente während des gesamten Zeitraumes in der Menge waren
Returns:
die Elemente in der dynamischen Menge oder eine leere Liste

addChangeListener

public void addChangeListener(MutableSetChangeListener observer)
Meldet einen Beobachter an, der informiert wird, falls sich an der dynamischen Menge etwas ändert.

Specified by:
addChangeListener in interface MutableSet
Parameters:
observer - Der Beobachter

removeChangeListener

public void removeChangeListener(MutableSetChangeListener observer)
Meldet einen Beobachter wieder ab.

Specified by:
removeChangeListener in interface MutableSet
Parameters:
observer - Der Beobachter

add

public void add(SystemObject object)
         throws ConfigurationChangeException
Erweitert die Menge um ein weiteres Element. Wenn das angegebene Element schon in der Menge enthalten ist, dann wird die Menge nicht verändert. Wenn der Typ des angegebenen System-Objekts in der Menge nicht erlaubt ist, wird die Menge nicht verändert und eine Ausnahme generiert. Wenn bei online änderbaren Mengen die maximale Anzahl von Objekten bereits erreicht ist, wird die Menge nicht verändert und eine Ausnahme generiert.

Specified by:
add in interface ObjectSet
Overrides:
add in class DafObjectSet
Parameters:
object - Das System-Objekt, das der Menge hinzugefügt werden soll.
Throws:
ConfigurationChangeException - Wenn eines der übergebenen Objekte nicht in die Menge aufgenommen werden konnte und noch nicht in der Menge enthalten war.

remove

public void remove(SystemObject object)
            throws ConfigurationChangeException
Entfernt ein Element der Menge. Wenn das Element nicht in der Menge enthalten ist, wird es ignoriert. Ausnahmen werden generiert, u.a. wenn bei online änderbaren Mengen die minimale Anzahl von Objekten bereits erreicht ist. Bei Ausnahmen wird die Menge nicht verändert.

Specified by:
remove in interface ObjectSet
Overrides:
remove in class DafObjectSet
Parameters:
object - Das System-Objekt, das aus der Menge entfernt werden soll.
Throws:
ConfigurationChangeException - Wenn die minimale Anzahl von Objekten unterschritten werden würde.

update

public void update(SystemObject[] addedObjects,
                   SystemObject[] removedObjects)
Diese Methode informiert alle Beobachter über Veränderungen an der dynamischen Menge.

Parameters:
addedObjects - Hinzugefügte Elemente
removedObjects - Entfernte Elemente

addConfigurationCommunicationChangeListener

public void addConfigurationCommunicationChangeListener(ConfigurationCommunicationChangeListener listener)
Description copied from interface: ConfigurationCommunicationInterface
Meldet einen Beobachter für die Zustandsänderungen der Kommunikation mit der verwaltenden Konfigurationen dieses Objekts an. Bei Änderungen wird die Methode ConfigurationCommunicationChangeListener.configurationCommunicationChange(ConfigurationCommunicationInterface, boolean) des angegebenen Beobachters aufgerufen.

Specified by:
addConfigurationCommunicationChangeListener in interface ConfigurationCommunicationInterface
Parameters:
listener - Beobachter für Zustandsänderungen der Kommunikation.

removeConfigurationCommunicationChangeListener

public void removeConfigurationCommunicationChangeListener(ConfigurationCommunicationChangeListener listener)
Description copied from interface: ConfigurationCommunicationInterface
Meldet einen Beobachter für die Zustandsänderungen dieser Kommunikation wieder ab.

Specified by:
removeConfigurationCommunicationChangeListener in interface ConfigurationCommunicationInterface
Parameters:
listener - Ein bisher für Zustandsänderungen der Kommunikation angemeldeter Beobachter.

configurationCommunicationChange

public void configurationCommunicationChange(boolean configComStatus)

isConfigurationCommunicationActive

public boolean isConfigurationCommunicationActive()
Description copied from interface: ConfigurationCommunicationInterface
Gibt an, ob die Kommunikation mit der verwaltenden Konfiguration dieses Objekts aktiv ist.

Specified by:
isConfigurationCommunicationActive in interface ConfigurationCommunicationInterface
Returns:
true bedeutet, dass die Kommunikation aktiv ist und false zeigt an, dass die Kommunikation unterbrochen ist

addChangeListener

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

Specified by:
addChangeListener in interface MutableCollection
Parameters:
simulationVariant - Simulationsvariante unter der die dynamische Zusammenstellung betrachtet werden soll.
changeListener - Listener, der bei Änderungen der Elemente informiert werden soll.

removeChangeListener

public void removeChangeListener(short simulationVariant,
                                 MutableCollectionChangeListener changeListener)
Description copied from interface: MutableCollection
Meldet einen zuvor angemeldeten Listener wieder ab.

Specified by:
removeChangeListener in interface MutableCollection
Parameters:
simulationVariant - Simulationsvariante der entsprechenden Anmeldung.
changeListener - Listener der entsprechenden Anmeldung.

getElements

public List<SystemObject> getElements(short simulationVariant)
Description copied from interface: MutableCollection
Bestimmt die aktuellen Elemente einer dynamischen Menge oder eines dynamischen Typs unter Berücksichtigung der Simulationsvariante.

Specified by:
getElements in interface MutableCollection
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.

collectionChanged

public void collectionChanged(short simVariant,
                              List<SystemObject> addedElements,
                              List<SystemObject> removedElements)
Leitet die Aktualisierungsnachrichten bzgl. Änderungen von dynamischen Mengen und dynamischen Typen an das entsprechende Verwaltungsobjekt weiter.

Parameters:
simVariant - Simulationsvariante der Änderung
addedElements - Hinzugefügte Elemente der dynamischen Zusammenstellung
removedElements - Entfernte Elemente der dynamischen Zusammenstellung