public class ConfigDataModel extends java.lang.Object implements DataModel, ConfigurationControl
Implementierung des Datenmodells auf Seiten der Konfiguration zum Zugriff auf die Konfigurationsdaten. Die Verwaltungsdaten
und die Konfigurationsdaten
werden hier zusammengeführt und entsprechend des Datenmodells
zur Verfügung gestellt.
DataModel
Modifier and Type | Field and Description |
---|---|
static int |
PROTOCOL_VERSION
Maximal unterstützte Protokollversion
|
Constructor and Description |
---|
ConfigDataModel(java.io.File adminFile)
Erzeugt das Datenmodell der Konfiguration.
|
ConfigDataModel(java.io.File adminFile,
boolean ignoreDependencyErrorsInConsistencyCheck)
Erzeugt das Datenmodell der Konfiguration.
|
Modifier and Type | Method and Description |
---|---|
ConsistencyCheckResultInterface |
activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142).
|
BackupResult |
backupConfigurationFiles(java.lang.String targetDirectory,
BackupProgressCallback callback)
Veranlasst die Konfiguration, alle Konfigurationsdateien zu sichern.
|
BackupResult |
backupConfigurationFiles(java.lang.String targetDirectory,
ConfigurationAuthority configurationAuthority,
BackupProgressCallback callback)
Veranlasst die Konfiguration, ausgewählte Konfigurationsdateien zu sichern.
|
ConsistencyCheckResultInterface |
checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138).
|
ConsistencyCheckResultInterface |
checkConsistencyAndFixErrors(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Diese Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen und behebbare Probleme zu beheben.
|
void |
close() |
ConfigurationArea |
createConfigurationArea(java.lang.String name,
java.lang.String pid,
java.lang.String authorityPid)
Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an.
|
ConfigurationArea |
createConfigurationArea(java.lang.String areaName,
java.lang.String areaPid,
SystemObjectType authorityObjectType,
java.lang.String authorityPid,
java.lang.String authorityName,
long authorityCoding) |
ConfigurationObject |
createConfigurationObject(ConfigurationObjectType type,
java.lang.String pid,
java.lang.String name,
java.util.List<? extends ObjectSet> sets)
Erzeugt ein neues Konfigurationsobjekt eines vorgegebenen Typs.
|
DynamicObject |
createDynamicObject(SystemObjectType type,
java.lang.String pid,
java.lang.String name)
Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs.
|
void |
deleteDynamicObjectsPermanently() |
void |
deleteObjects(short simulationVariant)
Löscht alle dynamischen Objekte mit der angegebenen Simulationsvariante permanent.
|
void |
doMaintenance(MaintenanceSpec spec)
Ermittelt, welche Objekte endgültig gelöscht werden können und markiert diese.
|
void |
exportConfigurationAreas(java.io.File exportPath,
java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene
Verzeichnis.
|
short |
getActiveVersion(ConfigurationArea configurationArea)
Gibt die aktive Version des angegebenen Konfigurationsbereichs zurück.
|
java.util.Map<java.lang.String,ConfigurationArea> |
getAllConfigurationAreas()
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben.
|
java.util.Collection<SystemObject> |
getAllObjects(java.util.Collection<ConfigurationArea> configurationAreas,
java.util.Collection<SystemObjectType> systemObjectTypes,
ObjectTimeSpecification objectTimeSpecification)
Gibt alle Objekte unabhängig von der Simulationsvariante zurück
|
boolean |
getAllowDoublePids()
Liefert das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
|
protected java.util.Collection<SystemObjectType> |
getAllSubTypes(SystemObjectType type)
Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.
|
Aspect |
getAspect(java.lang.String pid)
Liefert den Aspekt mit der angegebenen PID zurück.
|
AttributeGroup |
getAttributeGroup(java.lang.String pid)
Liefert die Attributgruppe mit der angegebenen PID zurück.
|
AttributeGroupUsage |
getAttributeGroupUsage(long usageIdentification)
Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
|
AttributeType |
getAttributeType(java.lang.String pid)
Liefert den Attribut-Typ mit der angegebenen PID zurück.
|
java.io.File |
getBackupBaseDirectory()
Gibt das Verzeichnis für Sicherungen der Konfigurationsdateien zurück
|
java.util.List<SystemObjectType> |
getBaseTypes()
Liefert die Basistypen, also die Typ-Objekte, die keinen anderen Typ erweitern, zurück.
|
ConfigurationArea |
getConfigurationArea(java.lang.String pid)
Liefert zu der angegebenen Pid den passenden Konfigurationsbereich.
|
ConfigurationAreaManagementInfo |
getConfigurationAreaManagementInfo(java.lang.String pid)
Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.
|
ConfigurationAuthority |
getConfigurationAuthority()
Liefert den lokalen Verantwortlichen der gesamten Konfiguration.
|
java.lang.String |
getConfigurationAuthorityPid()
Liefert die Pid des lokalen Verantwortlichen der gesamten Konfiguration.
|
Data[] |
getConfigurationData(java.util.Collection<SystemObject> objects,
AttributeGroup atg)
Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(java.util.Collection<SystemObject> objects,
AttributeGroup atg,
Aspect asp)
Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(SystemObject[] objects,
AttributeGroup atg)
Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück.
|
Data[] |
getConfigurationData(SystemObject[] objects,
AttributeGroup atg,
Aspect asp)
Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück.
|
ConfigurationFileManager |
getConfigurationFileManager()
Liefert die Verwaltung für die Konfigurationsdateien.
|
boolean |
getIgnoreDependencyErrorsInConsistencyCheck() |
ConfigurationManagementFile |
getManagementFile()
Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.
|
SystemObject |
getObject(long id)
Liefert das System-Objekt mit der angegebenen Objekt-ID zurück.
|
SystemObject |
getObject(java.lang.String pid)
Liefert das System-Objekt mit der angegebenen PID zurück.
|
SystemObject |
getObject(java.lang.String pid,
short simulationVariant)
Gibt das Objekt mit der angegebenen Pid aus Sicht der angegebenen Simulation zurück.
|
java.util.Collection<SystemObject> |
getObjects(java.util.Collection<ConfigurationArea> configurationAreas,
java.util.Collection<SystemObjectType> systemObjectTypes,
ObjectTimeSpecification objectTimeSpecification)
Gibt alle Objekte zurück, außer Objekten die in Simulationen sind
|
java.util.Collection<SystemObject> |
getObjects(java.util.Collection<ConfigurationArea> configurationAreas,
java.util.Collection<SystemObjectType> systemObjectTypes,
ObjectTimeSpecification objectTimeSpecification,
short simulationVariant)
Gibt alle Objekte zurück, die in einer bestimmten Simulation gültig sind
|
java.util.List<SystemObject> |
getObjects(long... ids)
Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält.
|
java.util.List<SystemObject> |
getObjects(java.lang.String... pids)
Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält.
|
java.util.List<SystemObject> |
getObjects(java.lang.String[] pids,
short simulationVariant) |
java.util.Collection<SystemObject> |
getObjects(java.lang.String pid,
long startTime,
long endTime)
Gibt die Objekte zurück, die zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
|
java.util.Collection<SystemObject> |
getObjects(java.lang.String pid,
long startTime,
long endTime,
short simulationVariant)
Gibt die Objekte zurück, die aus Sicht der angegebenen Simulationsvariante zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
|
java.util.List<SystemObject> |
getObjectsById(java.util.Collection<java.lang.Long> ids)
Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält.
|
java.util.List<SystemObject> |
getObjectsByPid(java.util.Collection<java.lang.String> pids)
Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält.
|
ObjectSetType |
getObjectSetType(java.lang.String pid)
Liefert das Mengen-Typ-Objekt mit der angegebenen PID zurück.
|
ReferenceHelper |
getReferenceHelper() |
SystemObjectType |
getType(java.lang.String pid)
Liefert das Typ-Objekt mit der angegebenen PID zurück.
|
SystemObjectType |
getTypeTypeObject()
Liefert das Systemobjekt, das den Typ von Typobjekten darstellt.
|
UserAdministration |
getUserAdministration()
Gibt ein Objekt zurück, mit dem die Benutzer der Konfiguration verwaltet werden können.
|
ConfigAuthentication |
getUserManagement()
Gibt die Benutzerverwaltung zurück, falls über setUserManagement festgelegt
|
void |
importConfigurationAreas(java.io.File importPath,
java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration.
|
boolean |
objectIsValidInSimulation(SystemObject systemObject,
short simulationVariant)
Prüft, ob ein Objekt in der angegebenen Simulation gültig ist
|
boolean |
referenceAllowed(SystemObject systemObject)
Gibt true zurück, wenn das angegebene Objekt referenziert werden darf.
|
void |
releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status "Freigabe zur Aktivierung" zu
überführen.
|
ConsistencyCheckResultInterface |
releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Bereiche in den Zustand "Darf durch andere aktiviert werden, obwohl der KV
es selbst nicht aktiviert hat" zu bringen.
|
ConsistencyCheckResultInterface |
releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche in den Status "Freigabe zur Übernahme" zu überführen
(siehe TPuK1-143).
|
void |
restructure(ConfigurationAreaFile.RestructureMode mode) |
void |
save()
Speichert die Verwaltungsdaten und die Konfigurationsbereiche ab.
|
void |
saveSetElementsFileLater(MutableSetExtFileStorage mutableSetExtFileStorage) |
void |
saveSetElementsFiles() |
void |
sendCollectionChangedNotification(ConfigMutableCollectionSupport mutableCollectionSupport,
short simulationVariant,
java.util.List<SystemObject> addedElements,
java.util.List<SystemObject> removedElements)
Leitet die Aktualisierungsnachrichten bzgl.
|
void |
setAllowDoublePids(boolean allowDoublePids)
Setzt das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
|
void |
setBackupBaseDirectory(java.io.File backupBaseDirectory)
Setzt das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollen
|
void |
setConfigurationAuthority(ConfigurationAuthority authority)
Setzt den Konfigurationsverantwortlichen der Konfiguration.
|
void |
setIgnoreDependencyErrorsInConsistencyCheck(boolean ignoreDependencyErrorsInConsistencyCheck)
Setzt das Flag, mit dem die Konsistenzprüfung entscheidet, ob Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden oder zum Abbruch führen sollen. werden sollen.
|
void |
setSimulationHandler(SimulationHandler simulationHandler)
Setzt die Simulationsverwaltung die für manche Funktionen benötigt wird
|
void |
setUserManagement(ConfigAuthentication userManagement)
Setzt die Benutzerverwaltung
|
java.lang.String |
toString()
Gibt die String-Repräsentation dieser Klasse zurück.
|
void |
verifyDataReferences(ConfigSystemObject referencingObject,
Data data)
Bei Simulationen muss sichergestellt sein, dass Konfigurationsdaten von dynamischen Objekten aus Simulationen keine (assoziativen) Referenzen auf Objekte enthalten, die in dieser Simulation nicht gültig sind.
|
void |
verifyDataReferences(short simulationVariant,
Data data)
Bei Simulationen muss sichergestellt sein, dass Konfigurationsdaten von dynamischen Objekten aus Simulationen keine (assoziativen) Referenzen auf Objekte enthalten, die in dieser Simulation nicht gültig sind.
|
public static final int PROTOCOL_VERSION
Maximal unterstützte Protokollversion
public ConfigDataModel(java.io.File adminFile)
Erzeugt das Datenmodell der Konfiguration.
adminFile
- Datei mit den Verwaltungsdaten der Konfiguration oder leere Datei.public ConfigDataModel(java.io.File adminFile, boolean ignoreDependencyErrorsInConsistencyCheck)
Erzeugt das Datenmodell der Konfiguration.
adminFile
- Datei mit den Verwaltungsdaten der Konfiguration oder leere Datei.ignoreDependencyErrorsInConsistencyCheck
- Flag zum ignorieren fehlender Abhängigkeiten zwischen Konfigurationsbereichenpublic ConfigurationFileManager getConfigurationFileManager()
Liefert die Verwaltung für die Konfigurationsdateien.
public ConfigurationManagementFile getManagementFile()
Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.
public ConfigurationAuthority getConfigurationAuthority()
de.bsvrz.dav.daf.main.config.DataModel
getConfigurationAuthority
in interface DataModel
public java.lang.String getConfigurationAuthorityPid()
de.bsvrz.dav.daf.main.config.DataModel
getConfigurationAuthorityPid
in interface DataModel
public ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo(java.lang.String pid)
Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.
pid
- Pid des Konfigurationsbereichspublic ConsistencyCheckResultInterface checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
oder Freigabe ConfigurationControl.releaseConfigurationAreasForTransfer(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
aufgerufen
werden.checkConsistency
in interface ConfigurationControl
configurationAreas
- Definiert alle Konfigurationsbereiche, die einer Konsistenzprüfung unterzogen werden sollen. Der Bereich wird über seine Pid
identifiziert, zusätzlich wird die Version angegeben in der der Konfigurationsbereich geprüft werden soll. Alle Bereiche der
Konfiguration, die nicht angegeben werden, werden in die Prüfung einbezogen und zwar mit ihrer aktuellen Version und müssen somit
nicht explizit angegeben werden.public ConsistencyCheckResultInterface activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Verlief die Konsistenzprüfung positiv (weder lokale noch Interferenzfehler), wird beim nächsten Neustart der Konfiguration jeder angegebene Konfigurationsbereich mit der angegebenen Version gestartet.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche aktiviert.
Die Implementierung muss dabei berücksichtigen, dass nur Konfigurationsbereiche aktiviert werden dürfen, für die die Konfiguration auch verantwortlich (Konfiguration ist Konfigurationsverantwortlicher des Bereichs) ist oder aber Konfigurationsbereiche die zur Aktivierung durch andere Konfigurationsverantwortliche freigegeben sind.
Die Version, in der ein Konfigurationsbereich aktiviert werden soll, muss größer sein als die derzeit aktuelle Version in der der Konfigurationsbereich läuft.
activateConfigurationAreas
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version aktiviert werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht aktiviert werden konnte. public ConsistencyCheckResultInterface checkConsistencyAndFixErrors(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Diese Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen und behebbare Probleme zu beheben. Diese Methode kann unabhängig von der Aktivierung activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
oder Freigabe releaseConfigurationAreasForTransfer(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
aufgerufen werden.
configurationAreas
- Definiert alle Konfigurationsbereiche, die einer Konsistenzprüfung unterzogen werden sollen. Der Bereich wird über seine Pid identifiziert, zusätzlich wird die Version angegeben in der der Konfigurationsbereich geprüft werden soll. Alle Bereiche der Konfiguration, die nicht angegeben werden, werden in die Prüfung einbezogen und zwar mit ihrer aktuellen Version und müssen somit nicht explizit angegeben werden.public void restructure(ConfigurationAreaFile.RestructureMode mode)
public ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Verlief die Konsistenzprüfung positiv(keine lokalen Fehler), werden die angegebenen Konfigurationsbereiche mit der angegebenen Version freigegeben.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche freigegeben.
Die Implementierung muss prüfen ob die Version, in der der Bereich zur Übernahme freigegeben wird, größer als die "aktuelle" Version, die zur Übernahme freigegeben wurde, ist.
releaseConfigurationAreasForTransfer
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version freigegeben werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Übernahme freigegeben werden konnte. public void releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Es findet keine Konsistenzprüfung statt, da ein Konfigurationsbereich nur dann für andere zur Aktivierung freigegeben werden darf, wenn er bereits lokal
aktiviert ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
wurde.
Es werden entweder alle angegebenen Konfigurationsbereiche in der jeweils geforderten Version aktiviert oder keiner.
releaseConfigurationAreasForActivation
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version für andere Konfigurationen freigegeben werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Aktivierung freigegeben werden konnte. ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
.public void importConfigurationAreas(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Versorgungsdateien können auch wieder exportiert
werden.
importConfigurationAreas
in interface ConfigurationControl
importPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu importierenden KonfigurationsbereicheConfigurationChangeException
- Falls während des Imports Fehler auftreten. Nach Korrektur des Fehlers kann der Import wiederholt werden.public void exportConfigurationAreas(java.io.File exportPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationTaskException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
importiert
werden.exportConfigurationAreas
in interface ConfigurationControl
exportPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu exportierenden KonfigurationsbereicheConfigurationTaskException
- Die angegebenen Bereiche konnte nicht exportiert werden. Dies kann mehrere Gründe haben (zu einer Pid wurde kein
Konfigurationsbereich gefunden, eine Versorgungsdatei konnte nicht geschrieben werden, usw.).public ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Dadurch können andere Konfigurationen die Bereiche übernehmen und aktivieren.
Die Konsistenzprüfung darf bei dieser Art der Aktivierung Interferenzfehler zulassen, lokale Fehler sind nicht erlaubt. Alle Bereiche, die nicht im Parameter configurationAreas angegeben sind, werden in der "zur Aktivierung freigegeben"-Version geprüft. Das betrifft ebenfalls die Bereich, für die der KV verantwortlich ist.
Es werden entweder alle angegebenen Bereiche aktiviert oder keiner (falls es zu einem Fehler kommt).
Eine Beispielanwendung dafür wäre: Bereich A stellt ein Objekt zur Verfügung, kann es aber nicht aktivieren, weil der Typ in Bereich B definiert wird. Bereich B kann nicht aktivieren, weil das Objekt aus Bereich A referenziert wird.
Bereich A oder Bereich B können dann über diese Methode das Objekt oder den Typ trotzdem für den anderen Bereich zur Aktivierung freigeben.
releaseConfigurationAreasForActivationWithoutCAActivation
in interface ConfigurationControl
configurationAreas
- Bereiche, die für andere zur Aktivierung freigegeben sind aber ihrerseits nicht durch den KV aktiviert wurden.ConfigurationChangeException
- Fehler beim Versuch die Bereiche für andere freizugeben. Es wurde kein Bereich freigegeben.public final void deleteDynamicObjectsPermanently()
public SystemObject getObject(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
getObject
in interface DataModel
getObject
in interface ObjectLookup
pid
- Die permanente ID des System-Objektsnull
, wenn es kein Objekt mit der angegebenen PID gibt.DataModel
public SystemObject getObject(java.lang.String pid, short simulationVariant)
Gibt das Objekt mit der angegebenen Pid aus Sicht der angegebenen Simulation zurück. Das heißt im Detail:
pid
- PidsimulationVariant
- Simulationpublic SystemObject getObject(long id)
de.bsvrz.dav.daf.main.config.DataModel
getObject
in interface DataModel
getObject
in interface ObjectLookup
id
- Die Objekt-ID des System-Objektsnull
, wenn es kein Objekt mit der angegebenen ID gibt.DataModel
public java.util.List<SystemObject> getObjects(long... ids)
de.bsvrz.dav.daf.main.config.DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long)
aufzurufen.
getObjects
in interface DataModel
ids
- Array mit IDsDataModel.getObject(long)
public java.util.List<SystemObject> getObjects(java.lang.String... pids)
de.bsvrz.dav.daf.main.config.DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String)
aufzurufen.
getObjects
in interface DataModel
pids
- Array mit PIDsDataModel.getObject(java.lang.String)
public java.util.List<SystemObject> getObjects(java.lang.String[] pids, short simulationVariant)
public java.util.List<SystemObject> getObjectsById(java.util.Collection<java.lang.Long> ids)
de.bsvrz.dav.daf.main.config.DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long)
aufzurufen.
getObjectsById
in interface DataModel
ids
- Liste mit IDsDataModel.getObject(long)
public java.util.List<SystemObject> getObjectsByPid(java.util.Collection<java.lang.String> pids)
de.bsvrz.dav.daf.main.config.DataModel
null
.
Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String)
aufzurufen.
getObjectsByPid
in interface DataModel
pids
- Liste mit PIDsDataModel.getObject(java.lang.String)
public ConfigurationArea getConfigurationArea(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
getConfigurationArea
in interface DataModel
pid
- die Pid des Konfigurationsbereichspublic java.util.Map<java.lang.String,ConfigurationArea> getAllConfigurationAreas()
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
getAllConfigurationAreas
in interface ConfigurationControl
public Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg)
de.bsvrz.dav.daf.main.config.DataModel
asp.eigenschaften
angenommen.
Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere
Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen
Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(java.util.Collection<SystemObject> objects, AttributeGroup atg)
de.bsvrz.dav.daf.main.config.DataModel
asp.eigenschaften
angenommen.
Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere
Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen
Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Systemobjekte
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(SystemObject[] objects, AttributeGroup atg, Aspect asp)
de.bsvrz.dav.daf.main.config.DataModel
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage abgefragt werden. Die
Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Array mit den Systemobjekten
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.asp
- Aspekt der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public Data[] getConfigurationData(java.util.Collection<SystemObject> objects, AttributeGroup atg, Aspect asp)
de.bsvrz.dav.daf.main.config.DataModel
SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup)
ohne weitere Konfigurationsanfrage abgefragt werden. Die
Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.getConfigurationData
in interface DataModel
objects
- Liste der Systemobjekte
der gewünschten konfigurierenden Datensätze.atg
- Attributgruppe der gewünschten Datensätze.asp
- Aspekt der gewünschten Datensätze.objects
einen
korrespondierender konfigurierender Datensatz oder null
, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt
Kombination hat.public short getActiveVersion(ConfigurationArea configurationArea)
de.bsvrz.dav.daf.main.config.DataModel
getActiveVersion
in interface DataModel
configurationArea
- der Konfigurationsbereichpublic SystemObjectType getTypeTypeObject()
de.bsvrz.dav.daf.main.config.DataModel
getTypeTypeObject
in interface DataModel
public java.util.List<SystemObjectType> getBaseTypes()
de.bsvrz.dav.daf.main.config.DataModel
getBaseTypes
in interface DataModel
public SystemObjectType getType(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
public ObjectSetType getObjectSetType(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
getObjectSetType
in interface DataModel
pid
- Die permanente ID des Mengen-Typ-Objektsnull
, wenn es kein Objekt mit der angegebenen PID gibt.public AttributeGroup getAttributeGroup(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
getAttributeGroup
in interface DataModel
pid
- Die permanente ID der Attributgruppenull
, wenn es kein Objekt mit der gewünschten PID gibt.public AttributeType getAttributeType(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
getAttributeType
in interface DataModel
pid
- Die permanente ID des Attribut-Typsnull
, wenn es kein Objekt mit der angegebenen PID gibt.public Aspect getAspect(java.lang.String pid)
de.bsvrz.dav.daf.main.config.DataModel
public ConfigurationObject createConfigurationObject(ConfigurationObjectType type, java.lang.String pid, java.lang.String name, java.util.List<? extends ObjectSet> sets) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.DataModel
Standard-Konfigurationsbereich
des
aktuellen KV
erstellt.createConfigurationObject
in interface DataModel
type
- Typ des neuen Objekts.pid
- PID des neuen Objekts.name
- Name des neuen Objekts.sets
- Liste der Mengen des neuen Objekts oder null
, wenn kein Mengen vergeben werden sollen.ConfigurationChangeException
- Wenn das Objekt nicht erzeugt werden konnte.ConfigurationObject
,
SystemObject.isValid()
,
ConfigurationAuthority.getDefaultConfigurationArea()
public DynamicObject createDynamicObject(SystemObjectType type, java.lang.String pid, java.lang.String name) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.DataModel
Standard-Konfigurationsbereich
des aktuellen KV
erstellt.createDynamicObject
in interface DataModel
type
- Typ des neuen Objektspid
- PID des neuen Objekts.name
- Name des neuen Objekts.ConfigurationChangeException
- Wenn das Objekt nicht erzeugt werden konnte.SystemObject
,
SystemObject.isValid()
public void deleteObjects(short simulationVariant)
Löscht alle dynamischen Objekte mit der angegebenen Simulationsvariante permanent.
simulationVariant
- die Simulationsvariantepublic void doMaintenance(MaintenanceSpec spec)
Ermittelt, welche Objekte endgültig gelöscht werden können und markiert diese. Entfernt historische Referenzen in dynamischen Mengen
spec
- Spezifikation, welche Objekttypen nach welchen Zeiträumen gelöscht werden dürfenpublic ReferenceHelper getReferenceHelper()
public java.util.Collection<SystemObject> getObjects(java.lang.String pid, long startTime, long endTime, short simulationVariant)
Gibt die Objekte zurück, die aus Sicht der angegebenen Simulationsvariante zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
pid
- die Pid der gewünschten ObjektestartTime
- der zu betachtende Startzeitpunkt des AnfragezeitraumsendTime
- der zu betrachtende Endzeitpunkt des AnfragezeitraumssimulationVariant
- die Simulationsvariantepublic boolean objectIsValidInSimulation(SystemObject systemObject, short simulationVariant)
Prüft, ob ein Objekt in der angegebenen Simulation gültig ist
systemObject
- Zu prüfendes ObjektsimulationVariant
- Sumulationsvariante der zu prüfenden Simulation oder 0 falls keine Simulation verwendet wirdpublic java.util.Collection<SystemObject> getObjects(java.lang.String pid, long startTime, long endTime)
de.bsvrz.dav.daf.main.config.DataModel
getObjects
in interface DataModel
pid
- die Pid der gewünschten ObjektestartTime
- der zu betachtende Startzeitpunkt des AnfragezeitraumsendTime
- der zu betrachtende Endzeitpunkt des Anfragezeitraumspublic java.util.Collection<SystemObject> getAllObjects(java.util.Collection<ConfigurationArea> configurationAreas, java.util.Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification)
Gibt alle Objekte unabhängig von der Simulationsvariante zurück
configurationAreas
- Konfigurationsbereiche, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Konfigurationsbereiche werden betrachtet.systemObjectTypes
- Objekttypen, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Objekttypen werden betrachtet.objectTimeSpecification
- Gibt den Gültigkeitsbereich der geforderten Objekte an.getObjects(java.util.Collection, java.util.Collection, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification)
public java.util.Collection<SystemObject> getObjects(java.util.Collection<ConfigurationArea> configurationAreas, java.util.Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification)
Gibt alle Objekte zurück, außer Objekten die in Simulationen sind
getObjects
in interface DataModel
configurationAreas
- Konfigurationsbereiche, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Konfigurationsbereiche werden betrachtet.systemObjectTypes
- Objekttypen, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Objekttypen werden betrachtet.objectTimeSpecification
- Gibt den Gültigkeitsbereich der geforderten Objekte an.getAllObjects(java.util.Collection, java.util.Collection, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification)
public java.util.Collection<SystemObject> getObjects(java.util.Collection<ConfigurationArea> configurationAreas, java.util.Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification, short simulationVariant)
Gibt alle Objekte zurück, die in einer bestimmten Simulation gültig sind
configurationAreas
- Konfigurationsbereiche, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Konfigurationsbereiche werden betrachtet.systemObjectTypes
- Objekttypen, die zu berücksichtigen sind. Wird null
übergeben, so gilt dies als Wildcard und alle Objekttypen werden betrachtet.objectTimeSpecification
- Gibt den Gültigkeitsbereich der geforderten Objekte an.simulationVariant
- Simulationsvariantepublic UserAdministration getUserAdministration()
de.bsvrz.dav.daf.main.config.DataModel
getUserAdministration
in interface DataModel
public BackupResult backupConfigurationFiles(java.lang.String targetDirectory, BackupProgressCallback callback) throws ConfigurationTaskException
de.bsvrz.dav.daf.main.config.DataModel
backupConfigurationFiles
in interface DataModel
targetDirectory
- Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten
Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen
Pfadnamen. Falls das ConfigDataModel
direkt benutzt wird und mit setBackupBaseDirectory(java.io.File)
noch keine Zielverzeichnis angelegt
wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis
interpretiert.callback
- Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sindConfigurationTaskException
- Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das
Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback
eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.public BackupResult backupConfigurationFiles(java.lang.String targetDirectory, ConfigurationAuthority configurationAuthority, BackupProgressCallback callback) throws ConfigurationTaskException
de.bsvrz.dav.daf.main.config.DataModel
backupConfigurationFiles
in interface DataModel
targetDirectory
- Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten
Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen
Pfadnamen. Falls das ConfigDataModel
direkt benutzt wird und mit setBackupBaseDirectory(java.io.File)
noch keine Zielverzeichnis angelegt
wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis
interpretiert.configurationAuthority
- Konfigurationsverantwortlicher, dessen Konfigurations-Dateien gesichert werden sollen. Falls null werden
alle Dateien gesichert.callback
- Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sindConfigurationTaskException
- Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das
Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback
eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.protected java.util.Collection<SystemObjectType> getAllSubTypes(SystemObjectType type)
Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.
type
- der zu betrachtende Objekt-Typpublic java.lang.String toString()
Gibt die String-Repräsentation dieser Klasse zurück. Der Wert kann sich ändern.
toString
in class java.lang.Object
public void save() throws java.io.IOException
Speichert die Verwaltungsdaten und die Konfigurationsbereiche ab.
java.io.IOException
- Fehler, die beim Speichern der Verwaltungsdaten oder der Konfigurationsdateien auftreten, werden hier weitergereicht.public void close()
public void setConfigurationAuthority(ConfigurationAuthority authority)
Setzt den Konfigurationsverantwortlichen der Konfiguration.
authority
- der Konfigurationsverantwortliche der Konfigurationpublic ConfigurationArea createConfigurationArea(java.lang.String areaName, java.lang.String areaPid, SystemObjectType authorityObjectType, java.lang.String authorityPid, java.lang.String authorityName, long authorityCoding) throws ConfigurationChangeException
ConfigurationChangeException
public ConfigurationArea createConfigurationArea(java.lang.String name, java.lang.String pid, java.lang.String authorityPid) throws ConfigurationChangeException
de.bsvrz.dav.daf.main.config.management.ConfigurationControl
Zusätzlich müssen die konfigurierenden Datensätze für den Konfigurationsverantwortlichen und für die Versionsnummern (aktivierbare und übernehmbare Version) angelegt werden.
Ein Eintrag in der Verwaltungsdatei wird ebenfalls eingetragen. Er enthält die Pid des Konfigurationsbereichs und die Pfadangabe, wo sich die Konfigurationsdatei nach Erstellung befindet.
createConfigurationArea
in interface ConfigurationControl
name
- Name des neuen Konfigurationsbereichspid
- eindeutige Pid des neuen KonfigurationsbereichsauthorityPid
- die Pid des Konfigurationsverantwortlichen des neuen KonfigurationsbereichsConfigurationChangeException
- Falls kein neuer Konfigurationsbereich angelegt werden konnte.public AttributeGroupUsage getAttributeGroupUsage(long usageIdentification)
Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
getAttributeGroupUsage
in interface DataModel
usageIdentification
- Identifizierung dieser Attributgruppenverwendung bei der Kommunikation über den Datenverteiler.public void setAllowDoublePids(boolean allowDoublePids)
Setzt das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
allowDoublePids
- true
falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.public boolean getAllowDoublePids()
Liefert das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
true
falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.public void setIgnoreDependencyErrorsInConsistencyCheck(boolean ignoreDependencyErrorsInConsistencyCheck)
Setzt das Flag, mit dem die Konsistenzprüfung entscheidet, ob Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden oder zum Abbruch führen sollen. werden sollen.
ignoreDependencyErrorsInConsistencyCheck
- true
falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.public boolean getIgnoreDependencyErrorsInConsistencyCheck()
public void saveSetElementsFileLater(MutableSetExtFileStorage mutableSetExtFileStorage)
public void saveSetElementsFiles()
public void sendCollectionChangedNotification(ConfigMutableCollectionSupport mutableCollectionSupport, short simulationVariant, java.util.List<SystemObject> addedElements, java.util.List<SystemObject> removedElements)
Leitet die Aktualisierungsnachrichten bzgl. Änderungen von dynamischen Mengen und dynamischen Typen an das entsprechende Verwaltungsobjekt weiter.
mutableCollectionSupport
- Verwaltungsobjekt für AktualisierungsnachrichtensimulationVariant
- Simulationsvariante der ÄnderungaddedElements
- Hinzugefügte Elemente der dynamischen ZusammenstellungremovedElements
- Entfernte Elemente der dynamischen Zusammenstellungpublic java.io.File getBackupBaseDirectory()
Gibt das Verzeichnis für Sicherungen der Konfigurationsdateien zurück
public void setBackupBaseDirectory(java.io.File backupBaseDirectory)
Setzt das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollen
backupBaseDirectory
- das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollenpublic void setUserManagement(ConfigAuthentication userManagement)
Setzt die Benutzerverwaltung
userManagement
- Benutzerverwaltungsklassepublic ConfigAuthentication getUserManagement()
Gibt die Benutzerverwaltung zurück, falls über setUserManagement festgelegt
public void setSimulationHandler(SimulationHandler simulationHandler)
Setzt die Simulationsverwaltung die für manche Funktionen benötigt wird
simulationHandler
- Klasse zur Abfrage nach Simulationenpublic void verifyDataReferences(ConfigSystemObject referencingObject, Data data) throws ConfigurationChangeException
Bei Simulationen muss sichergestellt sein, dass Konfigurationsdaten von dynamischen Objekten aus Simulationen keine (assoziativen) Referenzen auf Objekte enthalten, die in dieser Simulation nicht gültig sind.
Ebenfalls dürfen für das Löschen vorgemerkte Objekte nicht referenziert werden
Diese Prüfung wird hier vorgenommen und kann von verschiedenen Stellen aus aufgerufen werden
referencingObject
- Referenzierendes Objektdata
- KonfigurationsdatenConfigurationChangeException
- Wird geworfen wenn Referenzen ungültig sindpublic void verifyDataReferences(short simulationVariant, Data data) throws ConfigurationChangeException
Bei Simulationen muss sichergestellt sein, dass Konfigurationsdaten von dynamischen Objekten aus Simulationen keine (assoziativen) Referenzen auf Objekte enthalten, die in dieser Simulation nicht gültig sind.
Ebenfalls dürfen für das Löschen vorgemerkte Objekte nicht referenziert werden
Diese Prüfung wird hier vorgenommen und kann von verschiedenen Stellen aus aufgerufen werden
simulationVariant
- Simulationsvariante des dynamischen Objektsdata
- KonfigurationsdatenConfigurationChangeException
- Wird geworfen wenn Referenzen ungültig sindpublic boolean referenceAllowed(SystemObject systemObject)
Gibt true zurück, wenn das angegebene Objekt referenziert werden darf. Ein Objekt darf nicht mehr Referenziert werden, wenn es fürs endgültige Löschen vorgemerkt wurde-