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

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.DafSystemObjectType
              extended by de.bsvrz.dav.daf.main.impl.config.DafDynamicObjectType
All Implemented Interfaces:
ConfigurationObject, DynamicObjectType, MutableCollection, SystemObject, SystemObjectCollection, SystemObjectType, Comparable

public class DafDynamicObjectType
extends DafSystemObjectType
implements DynamicObjectType

Klasse, die den Zugriff auf Typen von dynamischen Objekten seitens der Datenverteiler-Applikationsfunktionen ermöglicht.

Author:
Kappich Systemberatung

Nested Class Summary
 
Nested classes/interfaces inherited from interface de.bsvrz.dav.daf.main.config.DynamicObjectType
DynamicObjectType.DynamicObjectCreatedListener, DynamicObjectType.NameChangeListener, DynamicObjectType.PersistenceMode
 
Field Summary
private  Set<InvalidationListener> _invalidObjectListener
          Alle Listener, die informatiert werden müssen, wenn ein dynamisches Objekt ungültig wurde.
private  DafMutableCollectionSupport _mutableCollectionSupport
          Objekt zur Verwaltung von Anmeldungen auf Änderungen der Elemente dieses Typs.
private  Set<DynamicObjectType.NameChangeListener> _nameChangedListener
          Alle Listener, die informatiert werden müssen, wenn sich der Name eines Objekts ändert.
private  Set<DynamicObjectType.DynamicObjectCreatedListener> _objectCreatedListener
          Alle Listener, die informiert werden müssen, wenn ein neues Objekt angelegt wurde.
 
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
DafDynamicObjectType(DafDataModel dataModel)
          Erzeugt ein neues Objekt dessen Eigenschaften im Anschluss mit der read-Methode eingelesen werden sollten.
DafDynamicObjectType(long id, String pid, String name, long typId, byte state, String error, DafDataModel dataModel, short validFromVersionNumber, short validToVersionNumber, long responsibleObjectId, long[] setIds, boolean hasPermanentName)
          Erzeugt ein neues Objekt mit den angegebenen Eigenschaften
 
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 addInvalidationListener(InvalidationListener invalidationListener)
          Fügt einen Listener zu einer Datenstruktur hinzu.
 void addNameChangeListener(DynamicObjectType.NameChangeListener nameChangeListener)
          Fügt einen Listener zu einer Datenstruktur hinzu.
 void addObjectCreationListener(DynamicObjectType.DynamicObjectCreatedListener objectCreatedListener)
          Fügt einen Listener zu einer Datenstruktur hinzu.
 void collectionChanged(short simVariant, List<SystemObject> addedElements, List<SystemObject> removedElements)
          Leitet die Aktualisierungsnachrichten bzgl.
 List<SystemObject> getElements(short simulationVariant)
          Bestimmt die aktuellen Elemente einer dynamischen Menge oder eines dynamischen Typs unter Berücksichtigung der Simulationsvariante.
 DynamicObjectType.PersistenceMode getPersistenceMode()
          Bestimmt den Persistenzmodus von dynamischen Objekten dieses Typs.
private  boolean hasCreateListener()
           
private  boolean hasInvalidListeners()
          Prüft, ob es einen Listener gibt, der für Objekte von diesem Typ informiert werden möchte, falls ein Objekt ungültig wird.
private  boolean hasNameListeners()
           
private  void informCreateListener(DafDynamicObject dynamicObject)
          Informiert alle entsprechend angemeldeten Listener, dass ein Objekt erzeugt wurde.
private  void informInvalidListeners(DafDynamicObject invalidObject)
          Informiert alle angemeldeten Listener, dass ein Objekt ungültig wurde.
private  void informNameListeners(DafDynamicObject dynamicObjectWithNewName)
          Informiert alle Listener, die auf Namensänderungen dieses Typs angemeldet sind, dass sich der Name eines Objekt geändert hat.
 void removeChangeListener(short simulationVariant, MutableCollectionChangeListener changeListener)
          Meldet einen zuvor angemeldeten Listener wieder ab.
 void removeInvalidationListener(InvalidationListener invalidationListener)
          Entfernt den Listener aus der Datenstruktur.
 void removeNameChangeListener(DynamicObjectType.NameChangeListener nameChangeListener)
          Entfernt den Listener aus der Datenstruktur.
 void removeObjectCreationListener(DynamicObjectType.DynamicObjectCreatedListener objectCreatedListener)
          Entfernt den Listener aus der Datenstruktur.
(package private)  void updateName(long objectId, String newName)
          Setzt bei einem Objekt den Namen.
(package private)  void updateNotValidSince(long objectId, long notValidSince)
          Setze bei einem Objekt die Zeit wann es ungültig wurde und setzt das Objekt auch die Gültigkeit auf "ungültig".
(package private)  void updateObjectCreated(long objectId)
          Diese Methode wird aufgerufen, wenn ein dynamisches Objekt erzeugt wurde.
 
Methods inherited from class de.bsvrz.dav.daf.main.impl.config.DafSystemObjectType
getAttributeGroups, getDirectAttributeGroups, getDirectObjectSetUses, getElements, getElements, getElementsDuringPeriod, getElementsInPeriod, getObjects, getObjectSetUses, getSubTypes, getSuperTypes, inheritsFrom, isBaseType, isConfigurating, isNameOfObjectsPermanent, parseToString, read, 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.SystemObjectType
getAttributeGroups, getDirectAttributeGroups, getDirectObjectSetUses, getObjects, getObjectSetUses, getSubTypes, getSuperTypes, inheritsFrom, isBaseType, isConfigurating, isNameOfObjectsPermanent
 
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.SystemObjectCollection
getElements, getElements, getElementsDuringPeriod, getElementsInPeriod
 
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

_objectCreatedListener

private final Set<DynamicObjectType.DynamicObjectCreatedListener> _objectCreatedListener
Alle Listener, die informiert werden müssen, wenn ein neues Objekt angelegt wurde.


_nameChangedListener

private final Set<DynamicObjectType.NameChangeListener> _nameChangedListener
Alle Listener, die informatiert werden müssen, wenn sich der Name eines Objekts ändert.


_invalidObjectListener

private final Set<InvalidationListener> _invalidObjectListener
Alle Listener, die informatiert werden müssen, wenn ein dynamisches Objekt ungültig wurde.


_mutableCollectionSupport

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

Constructor Detail

DafDynamicObjectType

public DafDynamicObjectType(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.

DafDynamicObjectType

public DafDynamicObjectType(long id,
                            String pid,
                            String name,
                            long typId,
                            byte state,
                            String error,
                            DafDataModel dataModel,
                            short validFromVersionNumber,
                            short validToVersionNumber,
                            long responsibleObjectId,
                            long[] setIds,
                            boolean hasPermanentName)
Erzeugt ein neues Objekt mit den angegebenen Eigenschaften

Method Detail

getPersistenceMode

public DynamicObjectType.PersistenceMode getPersistenceMode()
Description copied from interface: DynamicObjectType
Bestimmt den Persistenzmodus von dynamischen Objekten dieses Typs.

Specified by:
getPersistenceMode in interface DynamicObjectType
Returns:
Persistenzmodus von dynamischen Objekten dieses Typs

addObjectCreationListener

public void addObjectCreationListener(DynamicObjectType.DynamicObjectCreatedListener objectCreatedListener)
Description copied from interface: DynamicObjectType
Fügt einen Listener zu einer Datenstruktur hinzu. Sobald ein neues dynamisches Objekt mit diesem Typ in der Konfiguration erzeugt wird, wird der Listener informiert.

Der mehrfache Aufruf der Methode mit dem identischen Objekt(==) objectCreatedListener fügt das Objekt nur einmal der Datenstruktur hinzu.

Specified by:
addObjectCreationListener in interface DynamicObjectType
Parameters:
objectCreatedListener - Objekt, das informiert wird sobald ein dynamisches Objekt mit diesem Typ erzeugt wird.

removeObjectCreationListener

public void removeObjectCreationListener(DynamicObjectType.DynamicObjectCreatedListener objectCreatedListener)
Description copied from interface: DynamicObjectType
Entfernt den Listener aus der Datenstruktur. Nach Aufruf dieser Methode findet keine Benachrichtigung über neue Objekte mehr statt.

Specified by:
removeObjectCreationListener in interface DynamicObjectType
Parameters:
objectCreatedListener - Objekt, das aus der Datenstruktur entfernt werden soll.
See Also:
DynamicObjectType.addObjectCreationListener(de.bsvrz.dav.daf.main.config.DynamicObjectType.DynamicObjectCreatedListener)

addNameChangeListener

public void addNameChangeListener(DynamicObjectType.NameChangeListener nameChangeListener)
Description copied from interface: DynamicObjectType
Fügt einen Listener zu einer Datenstruktur hinzu. Sobald der Name eines dynamischen Objekts dieses Typs geändert wird, wird der Listener informiert.

Ein mehrfacher Aufruf dieser Methode mit dem selben Objekten fügt das übergene Objekt nur einmal der Datenstruktur hinzu.

Specified by:
addNameChangeListener in interface DynamicObjectType
Parameters:
nameChangeListener - Objekt, das informiert wird, sobald der Name eines Objekts von diesem Typ geänder wird.

removeNameChangeListener

public void removeNameChangeListener(DynamicObjectType.NameChangeListener nameChangeListener)
Description copied from interface: DynamicObjectType
Entfernt den Listener aus der Datenstruktur. Das Objekt wird nicht mehr informiert wenn sich der Name eines Objekts von diesem Typ ändert.

Specified by:
removeNameChangeListener in interface DynamicObjectType
Parameters:
nameChangeListener - Listener, der entfernt wird.
See Also:
DynamicObjectType.addNameChangeListener(de.bsvrz.dav.daf.main.config.DynamicObjectType.NameChangeListener)

addInvalidationListener

public void addInvalidationListener(InvalidationListener invalidationListener)
Description copied from interface: DynamicObjectType
Fügt einen Listener zu einer Datenstruktur hinzu. Sobald ein dynamisches Objekt dieses Typs ungültig wird, wird der Listener informiert.

Ein mehrfacher Aufruf dieser Methode mit dem selben Objekten fügt das übergene Objekt nur einmal der Datenstruktur hinzu.

Specified by:
addInvalidationListener in interface DynamicObjectType
Parameters:
invalidationListener - Objekt, das informiert wird, sobald ein Objekt des Typs ungültig wird.

removeInvalidationListener

public void removeInvalidationListener(InvalidationListener invalidationListener)
Description copied from interface: DynamicObjectType
Entfernt den Listener aus der Datenstruktur. Das Objekt wird nicht mehr informiert wenn ein Objekt dieses Typs ungültig wird.

Specified by:
removeInvalidationListener in interface DynamicObjectType
Parameters:
invalidationListener - Listener, der entfernt werden soll.

updateObjectCreated

void updateObjectCreated(long objectId)
Diese Methode wird aufgerufen, wenn ein dynamisches Objekt erzeugt wurde. Gibt es einen Listener, der informiert werden soll, so wird das neue Objekt von der Konfiguration angefordert.

Gibt es keinen Listener, so wird nichts gemacht.

Parameters:
objectId - Neues Objekt

hasCreateListener

private boolean hasCreateListener()
Returns:
true = Es gibt Listener, die informiert werden wollen, sobald ein neues Objekt angelegt wird; false=sonst

informCreateListener

private void informCreateListener(DafDynamicObject dynamicObject)
Informiert alle entsprechend angemeldeten Listener, dass ein Objekt erzeugt wurde.

Parameters:
dynamicObject - Neu erzeugtes dynamisches Objekt

updateNotValidSince

void updateNotValidSince(long objectId,
                         long notValidSince)
Setze bei einem Objekt die Zeit wann es ungültig wurde und setzt das Objekt auch die Gültigkeit auf "ungültig".

Dies wird ausgeführt wenn das Objekt im Cache vorhanden ist oder ein Listener auf diese Änderungen angemeldet ist.

Ist dies nicht der Fall, wird nichts gemacht. (Es gibt niemanden, der sich für die Änderungen interssieren würde)

Parameters:
objectId - Id des Objekts, dessen Status auf ungültig gesetzt werden soll und dessen "Nicht mehr gültig ab" Zeit aktualisiert werden soll.
notValidSince - Zeitpunkt, an dem das Objekt ungültig wurde.

informInvalidListeners

private void informInvalidListeners(DafDynamicObject invalidObject)
Informiert alle angemeldeten Listener, dass ein Objekt ungültig wurde. Sind keine Listener angemeldet, so wird nichts gemacht.

Parameters:
invalidObject - dynamisches Objekt, das ungültig geworden ist.

hasInvalidListeners

private boolean hasInvalidListeners()
Prüft, ob es einen Listener gibt, der für Objekte von diesem Typ informiert werden möchte, falls ein Objekt ungültig wird.

Returns:
true = ja es gibt einen Listener

updateName

void updateName(long objectId,
                String newName)
Setzt bei einem Objekt den Namen. Dies wird ausgeführt wenn das Objekt im Cache vorhanden ist oder ein Listener darauf angemeldet ist.

Wenn der Name gesetzt wurde, werden alle Listener, die sich für Namensänderungen des Typs interssieren, informiert.

Parameters:
objectId - Id des Objekts, dessen Name aktualisiert werden soll
newName - aktueller Name

hasNameListeners

private boolean hasNameListeners()
Returns:
true = Es gibt Listener, die auf Namensänderungen angemeldet sind

informNameListeners

private void informNameListeners(DafDynamicObject dynamicObjectWithNewName)
Informiert alle Listener, die auf Namensänderungen dieses Typs angemeldet sind, dass sich der Name eines Objekt geändert hat. Sind keine Listener angemeldet, wird nichts gemacht.

Parameters:
dynamicObjectWithNewName - Objekt, dessen Name geändert wurde

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