Class ConfigDataModel

java.lang.Object
de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel
All Implemented Interfaces:
de.bsvrz.dav.daf.main.config.DataModel, de.bsvrz.dav.daf.main.config.management.ConfigurationControl, de.bsvrz.dav.daf.main.config.ObjectLookup

public class ConfigDataModel
extends java.lang.Object
implements de.bsvrz.dav.daf.main.config.DataModel, de.bsvrz.dav.daf.main.config.management.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.
See Also:
DataModel
  • Field Summary

    Fields
    Modifier and Type Field Description
    static int PROTOCOL_VERSION
    Maximal unterstützte Protokollversion
  • Constructor Summary

    Constructors
    Constructor Description
    ConfigDataModel​(java.io.File adminFile)
    Erzeugt das Datenmodell der Konfiguration.
    ConfigDataModel​(java.io.File adminFile, boolean ignoreDependencyErrorsInConsistencyCheck)
    Erzeugt das Datenmodell der Konfiguration.
  • Method Summary

    Modifier and Type Method Description
    de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface activateConfigurationAreas​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)  
    de.bsvrz.dav.daf.main.config.BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, de.bsvrz.dav.daf.main.config.BackupProgressCallback callback)  
    de.bsvrz.dav.daf.main.config.BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, de.bsvrz.dav.daf.main.config.ConfigurationAuthority configurationAuthority, de.bsvrz.dav.daf.main.config.BackupProgressCallback callback)  
    void checkCodingOfConfigurationAuthority​(short authorityCoding, java.lang.String authorityPid)
    Diese Methode prüft, ob die Kodierung des zu verwendenden Konfigurationsverantwortlichen eindeutig ist.
    de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface checkConsistency​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)  
    de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface checkConsistencyAndFixErrors​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)
    Diese Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen und behebbare Probleme zu beheben.
    void close()  
    de.bsvrz.dav.daf.main.config.ConfigurationArea createConfigurationArea​(java.lang.String areaName, java.lang.String areaPid, de.bsvrz.dav.daf.main.config.SystemObjectType authorityObjectType, java.lang.String authorityPid, java.lang.String authorityName, long authorityCoding)
    Diese Methode legt einen neuen Konfigurationsbereich und bei Bedarf den dazugehörigen Konfigurationsverantwortlichen in der lokalen Konfiguration an.
    de.bsvrz.dav.daf.main.config.ConfigurationArea createConfigurationArea​(java.lang.String name, java.lang.String pid, java.lang.String authorityPid)  
    de.bsvrz.dav.daf.main.config.ConfigurationObject createConfigurationObject​(de.bsvrz.dav.daf.main.config.ConfigurationObjectType type, java.lang.String pid, java.lang.String name, java.util.List<? extends de.bsvrz.dav.daf.main.config.ObjectSet> sets)  
    de.bsvrz.dav.daf.main.config.DynamicObject createDynamicObject​(de.bsvrz.dav.daf.main.config.SystemObjectType type, java.lang.String pid, java.lang.String name)  
    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)  
    short getActiveVersion​(de.bsvrz.dav.daf.main.config.ConfigurationArea configurationArea)  
    java.util.Map<java.lang.String,​de.bsvrz.dav.daf.main.config.ConfigurationArea> getAllConfigurationAreas()  
    java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getAllObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.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<de.bsvrz.dav.daf.main.config.SystemObjectType> getAllSubTypes​(de.bsvrz.dav.daf.main.config.SystemObjectType type)
    Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.
    de.bsvrz.dav.daf.main.config.AttributeGroupUsage getAttributeGroupUsage​(long usageIdentification)
    Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
    java.io.File getBackupBaseDirectory()
    Gibt das Verzeichnis für Sicherungen der Konfigurationsdateien zurück
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObjectType> getBaseTypes()  
    de.bsvrz.dav.daf.main.config.ConfigurationArea getConfigurationArea​(java.lang.String pid)  
    ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo​(java.lang.String pid)
    Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.
    de.bsvrz.dav.daf.main.config.ConfigurationAuthority getConfigurationAuthority()  
    java.lang.String getConfigurationAuthorityPid()  
    de.bsvrz.dav.daf.main.Data[] getConfigurationData​(de.bsvrz.dav.daf.main.config.SystemObject[] objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg)  
    de.bsvrz.dav.daf.main.Data[] getConfigurationData​(de.bsvrz.dav.daf.main.config.SystemObject[] objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg, de.bsvrz.dav.daf.main.config.Aspect asp)  
    de.bsvrz.dav.daf.main.Data[] getConfigurationData​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg)  
    de.bsvrz.dav.daf.main.Data[] getConfigurationData​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg, de.bsvrz.dav.daf.main.config.Aspect asp)  
    ConfigurationFileManager getConfigurationFileManager()
    Liefert die Verwaltung für die Konfigurationsdateien.
    boolean getIgnoreDependencyErrorsInConsistencyCheck()  
    ConfigurationManagementFile getManagementFile()
    Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.
    de.bsvrz.dav.daf.main.config.SystemObject getObject​(long id)  
    de.bsvrz.dav.daf.main.config.SystemObject getObject​(java.lang.String pid)  
    de.bsvrz.dav.daf.main.config.SystemObject getObject​(java.lang.String pid, short simulationVariant)
    Gibt das Objekt mit der angegebenen Pid aus Sicht der angegebenen Simulation zurück.
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(long... ids)  
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String... pids)  
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String[] pids, short simulationVariant)  
    java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String pid, long startTime, long endTime)  
    java.util.Collection<de.bsvrz.dav.daf.main.config.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.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification objectTimeSpecification)
    Gibt alle Objekte zurück, außer Objekten die in Simulationen sind
    java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification objectTimeSpecification, short simulationVariant)
    Gibt alle Objekte zurück, die in einer bestimmten Simulation gültig sind
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjectsById​(java.util.Collection<java.lang.Long> ids)  
    java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjectsByPid​(java.util.Collection<java.lang.String> pids)  
    ReferenceHelper getReferenceHelper()  
    de.bsvrz.dav.daf.main.config.SystemObjectType getTypeTypeObject()  
    de.bsvrz.dav.daf.main.config.management.UserAdministration getUserAdministration()  
    ConfigAuthentication getUserManagement()
    Gibt die Benutzerverwaltung zurück, falls über setUserManagement festgelegt
    void importConfigurationAreas​(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids)  
    boolean objectIsValidInSimulation​(de.bsvrz.dav.daf.main.config.SystemObject systemObject, short simulationVariant)
    Prüft, ob ein Objekt in der angegebenen Simulation gültig ist
    boolean referenceAllowed​(de.bsvrz.dav.daf.main.config.SystemObject systemObject)
    Gibt true zurück, wenn das angegebene Objekt referenziert werden darf.
    void releaseConfigurationAreasForActivation​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)  
    de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)  
    de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)  
    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<de.bsvrz.dav.daf.main.config.SystemObject> addedElements, java.util.List<de.bsvrz.dav.daf.main.config.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​(de.bsvrz.dav.daf.main.config.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​(short simulationVariant, de.bsvrz.dav.daf.main.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​(ConfigSystemObject referencingObject, de.bsvrz.dav.daf.main.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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface de.bsvrz.dav.daf.main.config.DataModel

    getAspect, getAttributeGroup, getAttributeGroupUsage, getAttributeType, getConfigObject, getConfigType, getDataDescription, getDynamicObject, getDynamicType, getObjectSetType, getType

    Methods inherited from interface de.bsvrz.dav.daf.main.config.ObjectLookup

    getObject, getObject
  • Field Details

    • PROTOCOL_VERSION

      public static final int PROTOCOL_VERSION
      Maximal unterstützte Protokollversion
      See Also:
      Constant Field Values
  • Constructor Details

    • ConfigDataModel

      public ConfigDataModel​(java.io.File adminFile)
      Erzeugt das Datenmodell der Konfiguration.
      Parameters:
      adminFile - Datei mit den Verwaltungsdaten der Konfiguration oder leere Datei.
    • ConfigDataModel

      public ConfigDataModel​(java.io.File adminFile, boolean ignoreDependencyErrorsInConsistencyCheck)
      Erzeugt das Datenmodell der Konfiguration.
      Parameters:
      adminFile - Datei mit den Verwaltungsdaten der Konfiguration oder leere Datei.
      ignoreDependencyErrorsInConsistencyCheck - Flag zum ignorieren fehlender Abhängigkeiten zwischen Konfigurationsbereichen
  • Method Details

    • checkCodingOfConfigurationAuthority

      public void checkCodingOfConfigurationAuthority​(short authorityCoding, java.lang.String authorityPid) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Diese Methode prüft, ob die Kodierung des zu verwendenden Konfigurationsverantwortlichen eindeutig ist. Es darf also keinen aktuellen Verantwortlichen geben, der die gleiche Kodierung verwendet.
      Parameters:
      authorityCoding - zu vergleichende Kodierung
      authorityPid - Pid des Konfigurationsverantwortlichen
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException - Falls die Kodierung nicht eindeutig ist.
    • getConfigurationFileManager

      public ConfigurationFileManager getConfigurationFileManager()
      Liefert die Verwaltung für die Konfigurationsdateien.
      Returns:
      die Verwaltung für die Konfigurationsdateien
    • getManagementFile

      public ConfigurationManagementFile getManagementFile()
      Gibt das Objekt für Änderungen an der Verwaltungsdatei zurück.
      Returns:
      das Objekt zur Manipulation der Verwaltungsdatei
    • getConfigurationAuthority

      public de.bsvrz.dav.daf.main.config.ConfigurationAuthority getConfigurationAuthority()
      Specified by:
      getConfigurationAuthority in interface de.bsvrz.dav.daf.main.config.DataModel
    • setConfigurationAuthority

      public void setConfigurationAuthority​(de.bsvrz.dav.daf.main.config.ConfigurationAuthority authority)
      Setzt den Konfigurationsverantwortlichen der Konfiguration.
      Parameters:
      authority - der Konfigurationsverantwortliche der Konfiguration
    • getConfigurationAuthorityPid

      public java.lang.String getConfigurationAuthorityPid()
      Specified by:
      getConfigurationAuthorityPid in interface de.bsvrz.dav.daf.main.config.DataModel
    • getConfigurationAreaManagementInfo

      public ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo​(java.lang.String pid)
      Gibt zu einem Konfigurationsbereich dessen Verwaltungsinformationen zurück.
      Parameters:
      pid - Pid des Konfigurationsbereichs
      Returns:
      Verwaltungsinformationen des gewünschten Konfigurationsbereichs
    • checkConsistency

      public de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface checkConsistency​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas)
      Specified by:
      checkConsistency in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
    • activateConfigurationAreas

      public de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface activateConfigurationAreas​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      activateConfigurationAreas in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • checkConsistencyAndFixErrors

      public de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface checkConsistencyAndFixErrors​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.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.
      Parameters:
      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.
      Returns:
      Ergebnis der Konsistenzprüfung
    • restructure

      public void restructure​(ConfigurationAreaFile.RestructureMode mode)
    • releaseConfigurationAreasForTransfer

      public de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      releaseConfigurationAreasForTransfer in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • releaseConfigurationAreasForActivation

      public void releaseConfigurationAreasForActivation​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      releaseConfigurationAreasForActivation in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • importConfigurationAreas

      public void importConfigurationAreas​(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      importConfigurationAreas in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • exportConfigurationAreas

      public void exportConfigurationAreas​(java.io.File exportPath, java.util.Collection<java.lang.String> configurationAreaPids) throws de.bsvrz.dav.daf.main.config.ConfigurationTaskException
      Specified by:
      exportConfigurationAreas in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationTaskException
    • releaseConfigurationAreasForActivationWithoutCAActivation

      public de.bsvrz.dav.daf.main.config.management.consistenycheck.ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation​(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion> configurationAreas) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      releaseConfigurationAreasForActivationWithoutCAActivation in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • deleteDynamicObjectsPermanently

      public final void deleteDynamicObjectsPermanently()
    • getObject

      public de.bsvrz.dav.daf.main.config.SystemObject getObject​(java.lang.String pid)
      Specified by:
      getObject in interface de.bsvrz.dav.daf.main.config.DataModel
      Specified by:
      getObject in interface de.bsvrz.dav.daf.main.config.ObjectLookup
    • getObject

      public de.bsvrz.dav.daf.main.config.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:
      • Bei Anfragen mit Simulationsvariante 0 werden nur "normale" aktive Objekte zurückgegeben.
      • Bei Anfragen aus Simulationen wird entweder ein Objekt derselben Simulation zurückgegeben, oder ein "normales" aktives Objekt. "normale" Objekte werden aber nur zurückgegeben, wenn der Typ des Objektes nicht speziell in der Simulation behandelt wird. Wird der Typ speziell behandelt ist das Objekt in der Simulation nicht gültig und es wird stattdessen null zurückgegeben.
      Parameters:
      pid - Pid
      simulationVariant - Simulation
      Returns:
      Ein Objekt falls vorhanden oder null.
    • getObject

      public de.bsvrz.dav.daf.main.config.SystemObject getObject​(long id)
      Specified by:
      getObject in interface de.bsvrz.dav.daf.main.config.DataModel
      Specified by:
      getObject in interface de.bsvrz.dav.daf.main.config.ObjectLookup
    • getObjects

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(long... ids)
      Specified by:
      getObjects in interface de.bsvrz.dav.daf.main.config.DataModel
    • getObjects

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String... pids)
      Specified by:
      getObjects in interface de.bsvrz.dav.daf.main.config.DataModel
    • getObjects

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String[] pids, short simulationVariant)
    • getObjectsById

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjectsById​(java.util.Collection<java.lang.Long> ids)
      Specified by:
      getObjectsById in interface de.bsvrz.dav.daf.main.config.DataModel
    • getObjectsByPid

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> getObjectsByPid​(java.util.Collection<java.lang.String> pids)
      Specified by:
      getObjectsByPid in interface de.bsvrz.dav.daf.main.config.DataModel
    • getConfigurationArea

      public de.bsvrz.dav.daf.main.config.ConfigurationArea getConfigurationArea​(java.lang.String pid)
      Specified by:
      getConfigurationArea in interface de.bsvrz.dav.daf.main.config.DataModel
    • getAllConfigurationAreas

      public java.util.Map<java.lang.String,​de.bsvrz.dav.daf.main.config.ConfigurationArea> getAllConfigurationAreas()
      Specified by:
      getAllConfigurationAreas in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
    • getConfigurationData

      public de.bsvrz.dav.daf.main.Data[] getConfigurationData​(de.bsvrz.dav.daf.main.config.SystemObject[] objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg)
      Specified by:
      getConfigurationData in interface de.bsvrz.dav.daf.main.config.DataModel
    • getConfigurationData

      public de.bsvrz.dav.daf.main.Data[] getConfigurationData​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg)
      Specified by:
      getConfigurationData in interface de.bsvrz.dav.daf.main.config.DataModel
    • getConfigurationData

      public de.bsvrz.dav.daf.main.Data[] getConfigurationData​(de.bsvrz.dav.daf.main.config.SystemObject[] objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg, de.bsvrz.dav.daf.main.config.Aspect asp)
      Specified by:
      getConfigurationData in interface de.bsvrz.dav.daf.main.config.DataModel
    • getConfigurationData

      public de.bsvrz.dav.daf.main.Data[] getConfigurationData​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> objects, de.bsvrz.dav.daf.main.config.AttributeGroup atg, de.bsvrz.dav.daf.main.config.Aspect asp)
      Specified by:
      getConfigurationData in interface de.bsvrz.dav.daf.main.config.DataModel
    • getActiveVersion

      public short getActiveVersion​(de.bsvrz.dav.daf.main.config.ConfigurationArea configurationArea)
      Specified by:
      getActiveVersion in interface de.bsvrz.dav.daf.main.config.DataModel
    • getTypeTypeObject

      public de.bsvrz.dav.daf.main.config.SystemObjectType getTypeTypeObject()
      Specified by:
      getTypeTypeObject in interface de.bsvrz.dav.daf.main.config.DataModel
    • getBaseTypes

      public java.util.List<de.bsvrz.dav.daf.main.config.SystemObjectType> getBaseTypes()
      Specified by:
      getBaseTypes in interface de.bsvrz.dav.daf.main.config.DataModel
    • createConfigurationObject

      public de.bsvrz.dav.daf.main.config.ConfigurationObject createConfigurationObject​(de.bsvrz.dav.daf.main.config.ConfigurationObjectType type, java.lang.String pid, java.lang.String name, java.util.List<? extends de.bsvrz.dav.daf.main.config.ObjectSet> sets) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      createConfigurationObject in interface de.bsvrz.dav.daf.main.config.DataModel
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • createDynamicObject

      public de.bsvrz.dav.daf.main.config.DynamicObject createDynamicObject​(de.bsvrz.dav.daf.main.config.SystemObjectType type, java.lang.String pid, java.lang.String name) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      createDynamicObject in interface de.bsvrz.dav.daf.main.config.DataModel
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • deleteObjects

      public void deleteObjects​(short simulationVariant)
      Löscht alle dynamischen Objekte mit der angegebenen Simulationsvariante permanent.
      Parameters:
      simulationVariant - die Simulationsvariante
    • doMaintenance

      public void doMaintenance​(MaintenanceSpec spec)
      Ermittelt, welche Objekte endgültig gelöscht werden können und markiert diese. Entfernt historische Referenzen in dynamischen Mengen
      Parameters:
      spec - Spezifikation, welche Objekttypen nach welchen Zeiträumen gelöscht werden dürfen
    • getReferenceHelper

      public ReferenceHelper getReferenceHelper()
    • getObjects

      public java.util.Collection<de.bsvrz.dav.daf.main.config.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.
      Parameters:
      pid - die Pid der gewünschten Objekte
      startTime - der zu betachtende Startzeitpunkt des Anfragezeitraums
      endTime - der zu betrachtende Endzeitpunkt des Anfragezeitraums
      simulationVariant - die Simulationsvariante
      Returns:
      Die Objekte, die zu der angegebenen Pid in dem angegebenen Zeitraum in der angegebenen Simulation gültig waren.
    • objectIsValidInSimulation

      public boolean objectIsValidInSimulation​(de.bsvrz.dav.daf.main.config.SystemObject systemObject, short simulationVariant)
      Prüft, ob ein Objekt in der angegebenen Simulation gültig ist
      Parameters:
      systemObject - Zu prüfendes Objekt
      simulationVariant - Simulationsvariante der zu prüfenden Simulation oder 0 falls keine Simulation verwendet wird
      Returns:
      true: Objekt ist gültig, false sonst. Insbesondere ist ein Objekt dann gültig wenn
      • Keine Simulation verwendet wird und das Objekt auch nicht simuliert ist
      • Eine Simulation verwendet wird und das Objekt dieselbe Simulationsvariante besitzt
      • Eine Simulation verwendet wird und das Objekt nicht simuliert ist, der Typ des Objektes aber auch nicht in der Simulationsstrecke definiert ist
    • getObjects

      public java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.lang.String pid, long startTime, long endTime)
      Specified by:
      getObjects in interface de.bsvrz.dav.daf.main.config.DataModel
    • getAllObjects

      public java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getAllObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification objectTimeSpecification)
      Gibt alle Objekte unabhängig von der Simulationsvariante zurück
      Parameters:
      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.
      Returns:
      Objekte
      See Also:
      getObjects(java.util.Collection, java.util.Collection, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification)
    • getObjects

      public java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification objectTimeSpecification)
      Gibt alle Objekte zurück, außer Objekten die in Simulationen sind
      Specified by:
      getObjects in interface de.bsvrz.dav.daf.main.config.DataModel
      Parameters:
      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.
      Returns:
      Objekte
      See Also:
      getAllObjects(java.util.Collection, java.util.Collection, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification)
    • getObjects

      public java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> getObjects​(java.util.Collection<de.bsvrz.dav.daf.main.config.ConfigurationArea> configurationAreas, java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> systemObjectTypes, de.bsvrz.dav.daf.main.config.ObjectTimeSpecification objectTimeSpecification, short simulationVariant)
      Gibt alle Objekte zurück, die in einer bestimmten Simulation gültig sind
      Parameters:
      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 - Simulationsvariante
      Returns:
      Objekte
    • getUserAdministration

      public de.bsvrz.dav.daf.main.config.management.UserAdministration getUserAdministration()
      Specified by:
      getUserAdministration in interface de.bsvrz.dav.daf.main.config.DataModel
    • backupConfigurationFiles

      public de.bsvrz.dav.daf.main.config.BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, de.bsvrz.dav.daf.main.config.BackupProgressCallback callback) throws de.bsvrz.dav.daf.main.config.ConfigurationTaskException
      Specified by:
      backupConfigurationFiles in interface de.bsvrz.dav.daf.main.config.DataModel
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationTaskException
    • backupConfigurationFiles

      public de.bsvrz.dav.daf.main.config.BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, de.bsvrz.dav.daf.main.config.ConfigurationAuthority configurationAuthority, de.bsvrz.dav.daf.main.config.BackupProgressCallback callback) throws de.bsvrz.dav.daf.main.config.ConfigurationTaskException
      Specified by:
      backupConfigurationFiles in interface de.bsvrz.dav.daf.main.config.DataModel
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationTaskException
    • getAllSubTypes

      protected java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObjectType> getAllSubTypes​(de.bsvrz.dav.daf.main.config.SystemObjectType type)
      Diese Methode ermittelt zu diesem Objekt-Typ rekursiv alle Typen, die diesen Typ direkt und indirekt erweitern.
      Parameters:
      type - der zu betrachtende Objekt-Typ
      Returns:
      Alle Typen, die diesen Typ direkt und indirekt erweitern.
    • toString

      public java.lang.String toString()
      Gibt die String-Repräsentation dieser Klasse zurück. Der Wert kann sich ändern.
      Overrides:
      toString in class java.lang.Object
      Returns:
      die String-Repräsentation dieser Klasse
    • save

      public void save() throws java.io.IOException
      Speichert die Verwaltungsdaten und die Konfigurationsbereiche ab.
      Throws:
      java.io.IOException - Fehler, die beim Speichern der Verwaltungsdaten oder der Konfigurationsdateien auftreten, werden hier weitergereicht.
    • close

      public void close()
    • createConfigurationArea

      public de.bsvrz.dav.daf.main.config.ConfigurationArea createConfigurationArea​(java.lang.String areaName, java.lang.String areaPid, de.bsvrz.dav.daf.main.config.SystemObjectType authorityObjectType, java.lang.String authorityPid, java.lang.String authorityName, long authorityCoding) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Diese Methode legt einen neuen Konfigurationsbereich und bei Bedarf den dazugehörigen Konfigurationsverantwortlichen in der lokalen Konfiguration an. Hierfür wird eine entsprechende Konfigurationsdatei angelegt, die initial das Objekt des Konfigurationsbereichs (und ggf. des Konfigurationsverantwortlichen) enthält.

      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.

      Soll ein Konfigurationsverantwortlicher angelegt werden, müssen die Parameter `authorityObjectType`, `authorityName` und `authorityCoding` gesetzt sein (sonst werden die Werte ignoriert).

      Soll kein Konfigurationsverantwortlicher angelegt werden, muss der Parameter `authorityPid` dem aktuellen KV entsprechen.

      Zum Anlegen eines neuen KV sind folgende Bedingungen zu erfüllen:

      • Es gibt noch kein KV mit derselben Pid in der Konfiguration.
      • Der neue KV ist bereits in der verwaltungsdaten.xml bzw. in `getManagementFile()` als aktueller KV eingetragen.
      • Die neue Kodierung liegt innerhalb des zulässigen Bereichs und ist noch keinem anderen KV zugeordnet

      Nach dem Anlegen eines KVs werden weitere Operationen (wie Erzeugungen weiterer Objekte) unter dem neuen KV mit seiner Kodierung durchgeführt.

      Nach dem Methodenaufruf müssen bei dem ggf. angelegten KV konfigurierende Informationen und Mengen (insbesondere der Datensatz "atg.konfigurationsVerantwortlicherEigenschaften") des KV manuell ergänzt werden. Der gerade angelegte KV kann mit der Methode getConfigurationAuthority() ermittelt werden. Wird das nicht gemacht, ist die Kodierung nach einem Neustart der Konfiguration nicht mehr bekannt und die Konfiguration ist ggf. nicht mehr benutzbar.

      Parameters:
      areaName - Name des neuen Konfigurationsbereichs
      areaPid - eindeutige Pid des neuen Konfigurationsbereichs
      authorityPid - die Pid des Konfigurationsverantwortlichen des neuen Konfigurationsbereichs
      Returns:
      Das Objekt des neuen Konfigurationsbereichs.
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException - Falls kein neuer Konfigurationsbereich angelegt werden konnte.
    • createConfigurationArea

      public de.bsvrz.dav.daf.main.config.ConfigurationArea createConfigurationArea​(java.lang.String name, java.lang.String pid, java.lang.String authorityPid) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Specified by:
      createConfigurationArea in interface de.bsvrz.dav.daf.main.config.management.ConfigurationControl
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • getAttributeGroupUsage

      public de.bsvrz.dav.daf.main.config.AttributeGroupUsage getAttributeGroupUsage​(long usageIdentification)
      Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
      Specified by:
      getAttributeGroupUsage in interface de.bsvrz.dav.daf.main.config.DataModel
      Parameters:
      usageIdentification - Identifizierung dieser Attributgruppenverwendung bei der Kommunikation über den Datenverteiler.
      Returns:
      Zur Identifizierung gehörende Attributgruppenverwendung.
    • getAllowDoublePids

      public boolean getAllowDoublePids()
      Liefert das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
      Returns:
      true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
    • setAllowDoublePids

      public void setAllowDoublePids​(boolean allowDoublePids)
      Setzt das Flag, mit dem die Konsistenzprüfung entscheiden soll, ob doppelte Pids in verschiedenen Konfigurationsbereichen erlaubt sind.
      Parameters:
      allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
    • getIgnoreDependencyErrorsInConsistencyCheck

      public boolean getIgnoreDependencyErrorsInConsistencyCheck()
    • setIgnoreDependencyErrorsInConsistencyCheck

      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.
      Parameters:
      ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.
    • saveSetElementsFileLater

      public void saveSetElementsFileLater​(MutableSetExtFileStorage mutableSetExtFileStorage)
    • saveSetElementsFiles

      public void saveSetElementsFiles()
    • sendCollectionChangedNotification

      public void sendCollectionChangedNotification​(ConfigMutableCollectionSupport mutableCollectionSupport, short simulationVariant, java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> addedElements, java.util.List<de.bsvrz.dav.daf.main.config.SystemObject> removedElements)
      Leitet die Aktualisierungsnachrichten bzgl. Änderungen von dynamischen Mengen und dynamischen Typen an das entsprechende Verwaltungsobjekt weiter.
      Parameters:
      mutableCollectionSupport - Verwaltungsobjekt für Aktualisierungsnachrichten
      simulationVariant - Simulationsvariante der Änderung
      addedElements - Hinzugefügte Elemente der dynamischen Zusammenstellung
      removedElements - Entfernte Elemente der dynamischen Zusammenstellung
    • getBackupBaseDirectory

      public java.io.File getBackupBaseDirectory()
      Gibt das Verzeichnis für Sicherungen der Konfigurationsdateien zurück
      Returns:
      das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollen. null wenn keines festgelegt wurde
    • setBackupBaseDirectory

      public void setBackupBaseDirectory​(java.io.File backupBaseDirectory)
      Setzt das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollen
      Parameters:
      backupBaseDirectory - das Verzeichnis, in dem Konfigurationsdateien gesichert werden sollen
    • getUserManagement

      public ConfigAuthentication getUserManagement()
      Gibt die Benutzerverwaltung zurück, falls über setUserManagement festgelegt
      Returns:
      eine ConfigAuthentication oder null falls keine festgelegt wurde
    • setUserManagement

      public void setUserManagement​(ConfigAuthentication userManagement)
      Setzt die Benutzerverwaltung
      Parameters:
      userManagement - Benutzerverwaltungsklasse
    • setSimulationHandler

      public void setSimulationHandler​(SimulationHandler simulationHandler)
      Setzt die Simulationsverwaltung die für manche Funktionen benötigt wird
      Parameters:
      simulationHandler - Klasse zur Abfrage nach Simulationen
    • verifyDataReferences

      public void verifyDataReferences​(ConfigSystemObject referencingObject, de.bsvrz.dav.daf.main.Data data) throws de.bsvrz.dav.daf.main.config.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

      Parameters:
      referencingObject - Referenzierendes Objekt
      data - Konfigurationsdaten
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException - Wird geworfen wenn Referenzen ungültig sind
    • verifyDataReferences

      public void verifyDataReferences​(short simulationVariant, de.bsvrz.dav.daf.main.Data data) throws de.bsvrz.dav.daf.main.config.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

      Parameters:
      simulationVariant - Simulationsvariante des dynamischen Objekts
      data - Konfigurationsdaten
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException - Wird geworfen wenn Referenzen ungültig sind
    • referenceAllowed

      public boolean referenceAllowed​(de.bsvrz.dav.daf.main.config.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-
      Returns:
      true, wenn das angegebene Objekt referenziert werden darf, sonst false