de.bsvrz.dav.daf.main.config
Interface ConfigurationObject

All Superinterfaces:
Comparable, SystemObject
All Known Subinterfaces:
Aspect, Attribute, AttributeGroup, AttributeGroupUsage, AttributeListDefinition, AttributeSet, AttributeType, ConfigurationArea, ConfigurationAuthority, ConfigurationObjectType, DavApplication, DoubleAttributeType, DynamicObjectType, IntegerAttributeType, IntegerValueRange, IntegerValueState, MutableCollection, MutableSet, NonMutableSet, ObjectSet, ObjectSetType, ObjectSetUse, ReferenceAttributeType, StringAttributeType, SystemConfigurationAuthority, SystemObjectType, TimeAttributeType
All Known Implementing Classes:
DafAspect, DafAttribute, DafAttributeGroup, DafAttributeGroupUsage, DafAttributeListDefinition, DafAttributeSet, DafAttributeType, DafConfigurationArea, DafConfigurationAuthority, DafConfigurationObject, DafConfigurationObjectType, DafDavApplication, DafDoubleAttributeType, DafDynamicObjectType, DafIntegerAttributeType, DafIntegerValueRange, DafIntegerValueState, DafMutableSet, DafNonMutableSet, DafObjectSet, DafObjectSetType, DafObjectSetUse, DafReferenceAttributeType, DafStringAttributeType, DafSystemObjectType, DafTimeAttributeType

public interface ConfigurationObject
extends SystemObject

Schnittstelle zum Zugriff auf die Eigenschaften eines Konfigurationsobjektes. Konfigurationsobjekte haben neben den Eigenschaften aller System-Objekte eine verantwortliche Instanz (Zuständiger), eine Version der Konfiguration ab der das Objekt gültig ist und eine Version der Konfiguration ab der das Objekt nicht mehr gültig ist.
Die verantwortliche Instanz macht eine Aussage darüber in welcher Umgebung Konfigurationsänderungen für das Objekt durchgeführt werden können. Dies ist für Anwendungsobjekte üblicherweise eine Verkehrsrechnerzentrale oder eine Unterzentrale und für Objekte des Datenmodells eine globale Instanz.
In einer Konfiguration können Konfigurationsobjekte von verschiedenen verantwortlichen Instanzen gespeichert werden. Jede Konfiguration verwaltet für jede verantwortliche Instanz zu der sie Objekte gespeichert hat eine lokal aktivierte Versionsnummer die nicht unbedingt mit der in der verantwortlichen Instanz aktivierten Versionsnummer übereinstimmen muss. Beispielsweise können in der Konfiguration einer VRZ die Konfigurationsobjekte einer UZ übernommen werden. Die VRZ verwaltet dann für die übernommene Konfiguration eine lokale Versionsnummer.
Die Versionsnummern ab der ein Konfigurationsobjekt gültig bzw. nicht mehr gültig ist bezieht sich immer auf die lokal aktivierte Versionsnummer der verantwortlichen Instanz des jeweiligen Objekts. Wenn in der VRZ die lokal aktivierte Version der UZ-Konfiguration kleiner als die in der UZ aktivierten Version ist, dann werden z.B. die neusten Objekte der UZ in der VRZ als noch nicht gültig angesehen, obwohl sie in der UZ schon gültig sind.
Die Schnittstelle bietet außerdem Möglichkeiten, um auf die einem Konfigurationsobjekt zugeordneten benannten Objekt-Mengen zuzugreifen.

Author:
Kappich Systemberatung

Method Summary
 void addSet(ObjectSet set)
          Ordnet dem Konfigurationsobjekt eine weitere Menge zu.
 SystemObject duplicate()
          Dupliziert ein Konfigurationsobjekt.
 SystemObject duplicate(Map<String,String> substitudePids)
          Dupliziert ein Konfigurationsobjekt.
 MutableSet getMutableSet(String name)
          Liefert eine diesem Konfigurations-Objekt zugeordnete online änderbare Menge zurück.
 NonMutableSet getNonMutableSet(String name)
          Liefert eine diesem Konfigurations-Objekt zugeordnete nicht online änderbare Menge zurück.
 short getNotValidSince()
          Liefert die Versionsnummer der Konfiguration ab der dieses Konfigurationsobjekt nicht mehr gültig ist.
 ObjectSet getObjectSet(String name)
          Liefert eine diesem Konfigurations-Objekt zugeordnete Objekt-Menge zurück.
 List<ObjectSet> getObjectSets()
          Liefert die Liste aller diesem Konfigurationsobjekt zugeordneten Mengen zurück.
 short getValidSince()
          Liefert die Versionsnummer der Konfiguration ab der dieses Konfigurationsobjekt gültig ist.
 void removeSet(ObjectSet set)
          Entfernt die Zuordnung von diesem Konfigurationsobjekt zu einer Menge.
 void revalidate()
          Macht ein bereits als ungültig markiertes Objekt wieder gültig.
 
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
 

Method Detail

getValidSince

short getValidSince()
Liefert die Versionsnummer der Konfiguration ab der dieses Konfigurationsobjekt gültig ist.

Returns:
Version ab der das Objekt gültig ist.

getNotValidSince

short getNotValidSince()
Liefert die Versionsnummer der Konfiguration ab der dieses Konfigurationsobjekt nicht mehr gültig ist.

Returns:
Versionsnummer der Konfiguration ab der dieses Konfigurationsobjekt nicht mehr gültig ist. Wenn das Objekt noch nicht mit der Methode SystemObject.invalidate() ungültig gemacht worden ist, dann wird der Wert 0 zurückgegeben.

getNonMutableSet

NonMutableSet getNonMutableSet(String name)
Liefert eine diesem Konfigurations-Objekt zugeordnete nicht online änderbare Menge zurück.

Parameters:
name - Der Name der gewünschten Menge
Returns:
Gewünschte Konfigurationsmenge oder null, wenn die spezifizierte Menge nicht vorhanden ist.

getMutableSet

MutableSet getMutableSet(String name)
Liefert eine diesem Konfigurations-Objekt zugeordnete online änderbare Menge zurück.

Parameters:
name - Der Name der gewünschten Menge
Returns:
Gewünschte dynamische Menge oder null, wenn die spezifizierte Menge nicht vorhanden ist.

getObjectSet

ObjectSet getObjectSet(String name)
Liefert eine diesem Konfigurations-Objekt zugeordnete Objekt-Menge zurück. Wenn die spezifizierte Objekt-Menge nicht online änderbar ist, dann unterstützt die zurückgegebene Menge die Schnittstelle für nicht online änderbare Mengen. Wenn die Menge online änderbar ist, dann unterstützt das zurückgegebene Mengenobjekt die Schnittstelle für online änderbare Mengen.

Parameters:
name - Der Name der gewünschten Menge
Returns:
Menge von System-Objekten oder null, wenn die spezifizierte Menge nicht vorhanden ist.

getObjectSets

List<ObjectSet> getObjectSets()
Liefert die Liste aller diesem Konfigurationsobjekt zugeordneten Mengen zurück.

Returns:
Liste aller Mengen dieses Objekts. Die in der Liste enthaltenen Mengen implementieren je nach Art entweder die Schnittstelle für nicht online änderbare Mengen oder die Schnittstelle für online änderbare Mengen.

revalidate

void revalidate()
                throws ConfigurationChangeException
Macht ein bereits als ungültig markiertes Objekt wieder gültig. Wenn ein Konfigurationsobjekt mit der Methode SystemObject.invalidate() für eine zukünftige Konfigurationsversion als ungültig markiert wurde und diese Konfigurationsversion noch nicht aktiviert wurde, dann kann das Objekt durch Aufruf dieser Methode wieder gültig gemacht werden.

Throws:
ConfigurationChangeException - Wenn das Objektes nicht wieder gültig gemacht werden konnte.

duplicate

SystemObject duplicate()
                       throws ConfigurationChangeException
Dupliziert ein Konfigurationsobjekt. Es ist zu beachten, dass Komponenten nicht isoliert dupliziert werden können, sondern im Sinne der Komposition immer nur ganze Objekt-Einheiten zusammen dupliziert werden können, d.h. ausgehend von einem freien Objekt wird das Objekt mit all seinen Komponenten rekursiv dupliziert. Das Duplikat wird mit Aktivierung der in Bearbeitung befindlichen neuen Version des jeweiligen Konfigurationsbereichs gültig. Da die Pids gleich bleiben, muss zuvor das "alte" Objekt gelöscht werden.

Returns:
Das Duplikat dieses Konfigurationsobjekts.
Throws:
ConfigurationChangeException - Falls das Objekt kein freies Objekt ist und das Duplizieren nicht erlaubt ist oder das Duplikat nicht erstellt werden konnte.
See Also:
duplicate(java.util.Map)

duplicate

SystemObject duplicate(Map<String,String> substitudePids)
                       throws ConfigurationChangeException
Dupliziert ein Konfigurationsobjekt. Es ist zu beachten, dass Komponenten nicht isoliert dupliziert werden können, sondern im Sinne der Komposition immer nur ganze Objekt-Einheiten zusammen dupliziert werden können, d.h. ausgehend von einem freien Objekt wird das Objekt mit all seinen Komponenten rekursiv dupliziert. Das Duplikat wird mit Aktivierung der in Bearbeitung befindlichen neuen Version des jeweiligen Konfigurationsbereichs gültig.

Zu ersetzende Pids der Komponenten können in der Map (altePid, neuePid) übergeben werden. Nicht ersetzte Pids, deren Objekte aber durch Komposition an die Objekt-Einheit gebunden sind, müssen vor Aktivierung gelöscht werden.

Parameters:
substitudePids - Map, die die Wert-Paare (altePid, neuePid) enthält.
Returns:
Das Duplikat dieses Konfigurationsobjekts.
Throws:
ConfigurationChangeException - Falls das Objekt kein freies Objekt ist und das Duplizieren nicht erlaubt ist oder das Duplikat nicht erstellt werden konnte.
See Also:
duplicate()

addSet

void addSet(ObjectSet set)
            throws ConfigurationChangeException
Ordnet dem Konfigurationsobjekt eine weitere Menge zu. Die Zuordnung wird erst mit der nächsten Konfigurationsversion gültig.

Parameters:
set - Menge, die dem Konfigurationsobjekt zugeordnet werden soll.
Throws:
ConfigurationChangeException - Wenn die Menge nicht hinzugefügt werden konnte.

removeSet

void removeSet(ObjectSet set)
               throws ConfigurationChangeException
Entfernt die Zuordnung von diesem Konfigurationsobjekt zu einer Menge. Die Änderung wird erst mit der nächsten Konfigurationsversion gültig.

Parameters:
set - Menge, die entfernt werden soll.
Throws:
ConfigurationChangeException - Wenn die Menge nicht entfernt werden konnte.