Class 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

      All Methods Instance Methods Concrete Methods 
      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 Detail

      • PROTOCOL_VERSION

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

      • 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 Detail

      • 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
      • 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
      • 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