Class DafDataModel

java.lang.Object
de.bsvrz.dav.daf.main.impl.config.DafDataModel
All Implemented Interfaces:
DataModel, ObjectLookup, UpdateDynamicObjects

public class DafDataModel
extends java.lang.Object
implements DataModel, UpdateDynamicObjects
Applikationsseitige Implementierung der DataModel Schnittstelle, die Zugriffe auf die Datenmodelle und Versorgungsdaten ermöglicht.
  • Field Details

    • MAX_PROTOCOL_VERSION

      public static final int MAX_PROTOCOL_VERSION
      Maximale Protokollversion (beginnend bei 0)
      See Also:
      Constant Field Values
  • Constructor Details

    • DafDataModel

      public DafDataModel​(ClientDavInterface connection)
      Erzeugt ein neues Objekt zum Zugriff auf die Konfiguration über eine vorgegebene Datenverteilerverbindung.
      Parameters:
      connection - Verbindung zum Datenverteiler.
  • Method Details

    • getAcceptedCachedAreas

      public int getAcceptedCachedAreas()
      Returns:
      Liefert die Anzahl von Konfigurationsbereichen, die aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • getIgnoredCachedAreas

      public int getIgnoredCachedAreas()
      Returns:
      Liefert die Anzahl von Konfigurationsbereichen, die nicht aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • getAcceptedCachedSystemObjects

      public int getAcceptedCachedSystemObjects()
      Returns:
      Liefert die Anzahl von Konfigurationsobjekten, die aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • getIgnoredCachedSystemObjects

      public int getIgnoredCachedSystemObjects()
      Returns:
      Liefert die Anzahl von Konfigurationsobjekten, die nicht aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • getAcceptedCachedConfigData

      public int getAcceptedCachedConfigData()
      Returns:
      Liefert die Anzahl von konfigurierenden Datensätzen, die aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • getIgnoredCachedConfigData

      public int getIgnoredCachedConfigData()
      Returns:
      Liefert die Anzahl von konfigurierenden Datensätzen, die nicht aus dem lokal gespeicherten Cache der Konfigurationsobjekte übernommen wurden.
    • init

      public final void init​(ConfigurationManager configurationManager, long configurationAuthorityId)
      Initialisiert dieses Objekt nach erfolgreichem Verbindungsaufbau mit dem Datenverteiler
      Parameters:
      configurationManager - Objekt zur Verwaltung der Kommunikation mit der Konfiguration
      configurationAuthorityId - Die Objekt-Id des Konfigurationsverantwortlichen
    • setPublicConnection

      public final void setPublicConnection​(ClientDavConnection publicConnection)
      Wird bei der Initialisierung aufgerufen um die öffentliche ClientDavConnection zu setzen.
      Parameters:
      publicConnection - ClientDavConnection
    • getPendingResponses

      public final java.util.LinkedList<ConfigTelegram> getPendingResponses()
      Liste mit den noch nicht bearbeiteten Antworten auf Konfigurationsanfragen
    • getProtocolVersion

      public final long getProtocolVersion()
    • isConnectionClosed

      public final boolean isConnectionClosed()
    • loadLocalConfigurationCache

      public final void loadLocalConfigurationCache()
      Liest lokal zwischengespeicherte Konfigurationsobjekte und konfigurierende Datensätze ein, falls in dem entsprechenden Aufrufparameter ein Verzeichnis angegeben wurde und dort eine passende Datei vorhanden ist. Nach der Anzahl der relevanten Konfigurationsbereiche werden für jeden Konfigurationsbereich folgende Informationen in der Datei erwartet
      • die (long-)Id des Konfigurationsbereiches,
      • die (short-)Aktive Version des Konfigurationsbereiches,
      • der (long-) Zeitstempel der letzen Änderung von dynamischen Objekten,
      • der (long-) Zeitsempel der letzten Änderung von konfigurierenden Objekten,
      • der Zeitstempel der letzten Änderung von konfigurierenden Datensätzen
      Diese Informationen werden mit den entsprechenden Werten in der Konfiguration verglichen. Nur wenn alle Werte übereinstimmen, werden Objekte des jeweiligen Bereichs aus der Datei geladen. Ein Konfigurationsobjekt wird seriell wie folgt aus der Datei gelesen:
      1. byte: 1 (die eins kennzeichnet ein Konfigurationsobjekt und zeigt an, dass ein solches folgt)
      2. byte: internType (gint an, um welchen Typ von Konfigurationsobjekt es sich handelt)
      3. Object: object (serielles Objekt)
      Ein konfigurierender Datensatz wird seriell aus der Datei wie folgt gelesen:
      1. byte: 2 (die zwei kennzeichnet einen konfigurierenden Datensatz und zeigt an das ein solcher folgt)
      2. long: Objekt-ID(Die ID des Objektes zu dem der konfiguriende Datensatz gehört)
      3. long: AtgV-ID(Die ID der Atributgruppenverwedung des konfigurienden Datensatzes)
      4. boolean: true→ Datensatz enthält Daten, false→ Datensatz enthält keine Daten
      5. Data: serialisierte Daten des Datensatzes
      Abschließend wird eine byte-0 geschrieben, das anzeigt, dass das Ende der Datei erreicht ist.
    • close

      public final void close()
      Diese Methode sollte beim Terminieren der Datenverteilerverbindung aufgerufen werden. Sie speichert die zwischengespeicherten Objekte falls gewünscht in einer Datei im lokalen Dateisystem.
    • getRequester

      public ConfigurationRequester getRequester()
      Mit dem zurückgegebenen Objekt können Anfragen an eine Konfiguration gestellt werden.
      Returns:
      Objekt für Konfigurationsanfragen
    • createRequester

      public final ConfigurationRequester createRequester() throws CommunicationError
      Throws:
      CommunicationError
    • getConnection

      public final ClientDavInterface getConnection()
      Gibt die aktuelle Verbindung zum Datenverteiler zurück.
      Returns:
      Die Verbindung zum Datenverteiler
    • getConfigurationManager

      public final ConfigurationManager getConfigurationManager()
      Liefert das Objekt zur Verwaltung der Kommunikation mit der Konfiguration zurück.
      Returns:
      Objekt zur Verwaltung der Kommunikation oder null, falls es noch nicht gesetzt wurde.
      See Also:
      init(de.bsvrz.dav.daf.main.impl.ConfigurationManager, long)
    • getTypeTypeObject

      public final SystemObjectType getTypeTypeObject()
      Description copied from interface: DataModel
      Liefert das Systemobjekt, das den Typ von Typobjekten darstellt.
      Specified by:
      getTypeTypeObject in interface DataModel
      Returns:
      Das Typ-Typ-Objekt.
    • getBaseTypes

      public final java.util.List<SystemObjectType> getBaseTypes()
      Description copied from interface: DataModel
      Liefert die Basistypen, also die Typ-Objekte, die keinen anderen Typ erweitern, zurück. Basistypen sind z.B. die Objekte mit den Permanenten IDs "typ.konfigurationsObjekt" und "typ.dynamischesObjekt".
      Specified by:
      getBaseTypes in interface DataModel
      Returns:
      Liste mit Typ-Objekten.
    • getObject

      public final SystemObject getObject​(long id)
      Description copied from interface: DataModel
      Liefert das System-Objekt mit der angegebenen Objekt-ID zurück.
      Specified by:
      getObject in interface DataModel
      Specified by:
      getObject in interface ObjectLookup
      Parameters:
      id - Die Objekt-ID des System-Objekts
      Returns:
      Das gewünschte System-Objekt oder null, wenn es kein Objekt mit der angegebenen ID gibt.
      See Also:
      DataModel
    • getObject

      public final SystemObject getObject​(java.lang.String pid)
      Description copied from interface: DataModel
      Liefert das System-Objekt mit der angegebenen PID zurück.
      Specified by:
      getObject in interface DataModel
      Specified by:
      getObject in interface ObjectLookup
      Parameters:
      pid - Die permanente ID des System-Objekts
      Returns:
      Das gewünschte System-Objekt oder null, wenn es kein Objekt mit der angegebenen PID gibt.
      See Also:
      DataModel
    • getObjects

      public final java.util.List<SystemObject> getObjects​(long... ids)
      Description copied from interface: DataModel
      Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält. Die Reihenfolge der Objekte der Liste entspricht der Reihenfolge der übergebenen IDs. Wurde ein Objekt nicht gefunden, enthält die Liste an der entsprechenden Position null.

      Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long) aufzurufen.

      Specified by:
      getObjects in interface DataModel
      Parameters:
      ids - Array mit IDs
      Returns:
      zugehörige System-Objekte
      See Also:
      DataModel.getObject(long)
    • getObjects

      public final java.util.List<SystemObject> getObjects​(java.lang.String... pids)
      Description copied from interface: DataModel
      Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält. Die Reihenfolge der Objekte der Liste entspricht der Reihenfolge der übergebenen PIDs. Wurde ein Objekt nicht gefunden, enthält die Liste an der entsprechenden Position null.

      Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String) aufzurufen.

      Specified by:
      getObjects in interface DataModel
      Parameters:
      pids - Array mit PIDs
      Returns:
      zugehörige System-Objekte
      See Also:
      DataModel.getObject(java.lang.String)
    • getObjectsById

      public java.util.List<SystemObject> getObjectsById​(java.util.Collection<java.lang.Long> ids)
      Description copied from interface: DataModel
      Liefert eine Liste zurück, die zu den angegebenen IDs die zugehörigen System-Objekte enthält. Die Reihenfolge der Objekte der Liste entspricht der Reihenfolge der übergebenen IDs. Wurde ein Objekt nicht gefunden, enthält die Liste an der entsprechenden Position null.

      Diese Methode kann bei der Anfrage nach mehreren IDs schneller sein, als mehrmals DataModel.getObject(long) aufzurufen.

      Specified by:
      getObjectsById in interface DataModel
      Parameters:
      ids - Liste mit IDs
      Returns:
      zugehörige System-Objekte
      See Also:
      DataModel.getObject(long)
    • getObjectsByPid

      public java.util.List<SystemObject> getObjectsByPid​(java.util.Collection<java.lang.String> pids)
      Description copied from interface: DataModel
      Liefert eine Liste zurück, die zu den angegebenen PIDs die zugehörigen System-Objekte enthält. Die Reihenfolge der Objekte der Liste entspricht der Reihenfolge der übergebenen PIDs. Wurde ein Objekt nicht gefunden, enthält die Liste an der entsprechenden Position null.

      Diese Methode kann bei der Anfrage nach mehreren PIDs schneller sein, als mehrmals DataModel.getObject(java.lang.String) aufzurufen.

      Specified by:
      getObjectsByPid in interface DataModel
      Parameters:
      pids - Liste mit PIDs
      Returns:
      zugehörige System-Objekte
      See Also:
      DataModel.getObject(java.lang.String)
    • createDynamicObject

      public final DynamicObject createDynamicObject​(SystemObjectType type, java.lang.String pid, java.lang.String name) throws ConfigurationChangeException
      Description copied from interface: DataModel
      Erzeugt ein neues dynamisches System-Objekt eines vorgegebenen Typs. Optional können auch Name und PID des neuen Objekts vorgegeben werden. Das neue Objekt wird sofort gültig und im Standard-Konfigurationsbereich des aktuellen KV erstellt.
      Specified by:
      createDynamicObject in interface DataModel
      Parameters:
      type - Typ des neuen Objekts
      pid - PID des neuen Objekts.
      name - Name des neuen Objekts.
      Returns:
      Stellvertreterobjekt für das neu angelegte dynamische Objekt.
      Throws:
      ConfigurationChangeException - Wenn das Objekt nicht erzeugt werden konnte.
      See Also:
      SystemObject, SystemObject.isValid()
    • createConfigurationObject

      public ConfigurationObject createConfigurationObject​(ConfigurationObjectType type, java.lang.String pid, java.lang.String name, java.util.List<? extends ObjectSet> sets) throws ConfigurationChangeException
      Description copied from interface: DataModel
      Erzeugt ein neues Konfigurationsobjekt eines vorgegebenen Typs. Optional können auch Name und PID des neuen Objekts vorgegeben werden. Die verantwortliche Instanz des neuen Objektes kann nicht spezifiziert werden, da sie von der jeweiligen Konfiguration vergeben wird. Das neue Objekt wird erst mit Aktivierung der nächsten Konfigurationsversion gültig und im Standard-Konfigurationsbereich des aktuellen KV erstellt.
      Specified by:
      createConfigurationObject in interface DataModel
      Parameters:
      type - Typ des neuen Objekts.
      pid - PID des neuen Objekts.
      name - Name des neuen Objekts.
      sets - Liste der Mengen des neuen Objekts oder null, wenn kein Mengen vergeben werden sollen.
      Returns:
      Stellvertreterobjekt für das neu angelegte Konfigurationsobjekt.
      Throws:
      ConfigurationChangeException - Wenn das Objekt nicht erzeugt werden konnte.
      See Also:
      ConfigurationObject, SystemObject.isValid(), ConfigurationAuthority.getDefaultConfigurationArea()
    • setName

      public final void setName​(DafSystemObject object, java.lang.String name) throws ConfigurationChangeException
      Throws:
      ConfigurationChangeException
    • invalidate

      public final void invalidate​(DafSystemObject dafSystemObject) throws ConfigurationChangeException
      Throws:
      ConfigurationChangeException
    • objectInvalidated

      public final void objectInvalidated​(DafSystemObject object, long notValidSince)
    • revalidate

      public final void revalidate​(DafSystemObject dafSystemObject) throws ConfigurationChangeException
      Throws:
      ConfigurationChangeException
    • getObjectsOfType

      public final java.util.List<SystemObject> getObjectsOfType​(DafSystemObjectType dafSystemObject)
    • getConfigurationArea

      public final DafConfigurationArea getConfigurationArea​(java.lang.String pid)
      Description copied from interface: DataModel
      Liefert zu der angegebenen Pid den passenden Konfigurationsbereich.
      Specified by:
      getConfigurationArea in interface DataModel
      Parameters:
      pid - die Pid des Konfigurationsbereichs
      Returns:
      der Konfigurationsbereich zur angegebenen Pid
    • getConfigurationAuthority

      public final ConfigurationAuthority getConfigurationAuthority()
      Description copied from interface: DataModel
      Liefert den lokalen Verantwortlichen der gesamten Konfiguration.
      Specified by:
      getConfigurationAuthority in interface DataModel
      Returns:
      der Konfigurationsverantwortliche der Konfiguration
    • getConfigurationAuthorityPid

      public java.lang.String getConfigurationAuthorityPid()
      Description copied from interface: DataModel
      Liefert die Pid des lokalen Verantwortlichen der gesamten Konfiguration.
      Specified by:
      getConfigurationAuthorityPid in interface DataModel
      Returns:
      die Pid des Konfigurationsverantwortlichen
    • getObjects

      public java.util.Collection<SystemObject> getObjects​(java.lang.String pid, long startTime, long endTime)
      Description copied from interface: DataModel
      Gibt die Objekte zurück, die zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
      Specified by:
      getObjects in interface DataModel
      Parameters:
      pid - die Pid der gewünschten Objekte
      startTime - der zu betachtende Startzeitpunkt des Anfragezeitraums
      endTime - der zu betrachtende Endzeitpunkt des Anfragezeitraums
      Returns:
      Die Objekte, die zu der angegebenen Pid in dem angegebenen Zeitraum gültig waren.
    • getObjects

      public final java.util.Collection<SystemObject> getObjects​(java.util.Collection<ConfigurationArea> configurationAreas, java.util.Collection<SystemObjectType> systemObjectTypes, ObjectTimeSpecification objectTimeSpecification)
      Description copied from interface: DataModel
      Gibt die Objekte zurück, die in einem der angegebenen Konfigurationsbereiche sind und deren Objekttyp in der angegebenen Objekttyp-Menge ist.
      Specified by:
      getObjects in interface 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:
      Die gewünschten System-Objekte oder eine leere Collection, falls es keine passenden Objekte gibt.
    • getUserAdministration

      public final UserAdministration getUserAdministration()
      Description copied from interface: DataModel
      Gibt ein Objekt zurück, mit dem die Benutzer der Konfiguration verwaltet werden können.
      Specified by:
      getUserAdministration in interface DataModel
      Returns:
      Objekt zur Benutzerverwaltung.
    • backupConfigurationFiles

      public BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, BackupProgressCallback callback) throws ConfigurationTaskException, RequestException
      Description copied from interface: DataModel
      Veranlasst die Konfiguration, alle Konfigurationsdateien zu sichern. Diese Funktion wartet auf das Beenden des Vorgangs. Wird der Auftrag über den Datenverteiler ausgeführt (DafDataModel) kann die Konfiguration andere Anfragen parallel ausführen. Wird die Funktion lokal ausgeführt (ConfigDataModel), kann es möglicherweise sinnvoll sein, die Funktion in einem eigenen Thread auszuführen.
      Specified by:
      backupConfigurationFiles in interface DataModel
      Parameters:
      targetDirectory - Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen Pfadnamen. Falls das de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel direkt benutzt wird und mit de.bsvrz.puk.config.configFile.datamodel.ConfigDataModel#setBackupBaseDirectory(java.io.File) noch kein Zielverzeichnis angelegt wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis interpretiert.
      callback - Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sind
      Returns:
      Objekt, das Informationen über das Ergebnis des Sicherungsvorgangs enthält
      Throws:
      ConfigurationTaskException - Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.
      RequestException - Fehler bei der Übertragung der Anfrage oder beim Empfang von Statusmeldungen der Konfiguration. Achtung: Man kann nicht zwingend darauf schließen, dass der Backupvorgang nicht erfolgreich war, wenn eine Exception geworfen wurde. Wenn während des Vorgangs beispielsweise die Verbindung zwischen Datenverteiler und Konfiguration abbricht, wird eine Exception geworfen, aber die Konfiguration wird den Vorgang vermutlich dennoch korrekt beenden.
    • backupConfigurationFiles

      public final BackupResult backupConfigurationFiles​(java.lang.String targetDirectory, ConfigurationAuthority configurationAuthority, BackupProgressCallback callback) throws ConfigurationTaskException, RequestException
      Description copied from interface: DataModel
      Veranlasst die Konfiguration, ausgewählte Konfigurationsdateien zu sichern. Diese Funktion wartet auf das Beenden des Vorgangs. Wird der Auftrag über den Datenverteiler ausgeführt (DafDataModel) kann die Konfiguration andere Anfragen parallel ausführen. Wird die Funktion lokal ausgeführt (ConfigDataModel), kann es möglicherweise sinnvoll sein, die Funktion in einem eigenen Thread auszuführen.
      Specified by:
      backupConfigurationFiles in interface DataModel
      Parameters:
      targetDirectory - Relatives Zielverzeichnis innerhalb des in der Konfiguration (mit dem Parameter -sicherungsVerzeichnis) festgelegten Sicherungsordners. Wird null oder ein Leerstring angegeben, generiert die Konfiguration aus aktuellem Datum und Uhrzeit einen neuen Pfadnamen. Falls das de.bsvrz.puk.config.configFile.datamodel .ConfigDataModel direkt benutzt wird und mit de.bsvrz.puk.config.configFile.datamodel .ConfigDataModel#setBackupBaseDirectory(java.io.File) noch kein Zielverzeichnis angelegt wurde, kann auch ein absoluter Pfadname angegeben werden. Ein relativer Pfadname würde dann relativ zum Arbeitsverzeichnis interpretiert.
      configurationAuthority - Konfigurationsverantwortlicher, dessen Konfigurations-Dateien gesichert werden sollen. Falls null werden alle Dateien gesichert.
      callback - Objekt, an das Statusmeldungen gesendet werden oder null, falls keine Rückmeldungen gewünscht sind
      Returns:
      Objekt, das Informationen über das Ergebnis des Sicherungsvorgangs enthält
      Throws:
      ConfigurationTaskException - Der Backup-Vorgang konnte nicht durchgeführt werden, beispielsweise weil das Zielverzeichnis falsch war. Falls das Sichern einzelner Dateien fehlschlägt wird keine solche Exception geworfen, stattdessen findet man innerhalb vom callback eventuelle Fehlschläge und BackupResult.getFailed ist größer 0.
      RequestException - Fehler bei der Übertragung der Anfrage oder beim Empfang von Statusmeldungen der Konfiguration. Achtung: Man kann nicht zwingend darauf schließen, dass der Backupvorgang nicht erfolgreich war, wenn eine Exception geworfen wurde. Wenn während des Vorgangs beispielsweise die Verbindung zwischen Datenverteiler und Konfiguration abbricht, wird eine Exception geworfen, aber die Konfiguration wird den Vorgang vermutlich dennoch korrekt beenden.
    • getObjectDataValues

      @Deprecated public final java.util.List<?> getObjectDataValues​(SystemObject object, AttributeGroup attributeGroup)
      Ermittelt einen konfigurierenden Datensatz. Wenn nicht vorhanden wird es aus der Konfiguration geholt.
      Parameters:
      object - Objekt des gewünschten Datensatzes
      attributeGroup - Attributgruppe des gewünschten Datensatzes
      Returns:
      Liste mit den Attributwerten des Datensatzes.
    • update

      public final void update​(ConfigTelegram telegram)
      Diese Methode wird aufgerufen, wenn eine Antwort auf eine Konfigurationsanfrage empfangen wurde.
      Parameters:
      telegram - Telegramm mit der empfangenen Antwort aus der Konfiguration.
    • getConfigurationData

      public Data[] getConfigurationData​(java.util.Collection<SystemObject> objects, AttributeGroup atg)
      Description copied from interface: DataModel
      Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück. Als Aspekt wird dabei asp.eigenschaften angenommen. Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Specified by:
      getConfigurationData in interface DataModel
      Parameters:
      objects - Systemobjekte der gewünschten konfigurierenden Datensätze.
      atg - Attributgruppe der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Das Array enthält für jedes Element des Parameters objects einen korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt Kombination hat.
    • updateName

      public void updateName​(long objectId, long typeId, java.lang.String newName)
      Description copied from interface: UpdateDynamicObjects
      Diese Methode wird aufgerufen, wenn die Konfiguration eine Namensänderung eines dynamischen Objekts propagiert hat.

      Auf Meta-Seite muss dann der Name des Objekts aktualisiert werden. Des Weiteren muss dem Typ des Objekts die Namensänderung mitgeteilt werden. Dies ist nötig, weil am Typ des Objekts Listener für Namensänderungen vorhanden sind.

      Beim setzen des Namens darf nicht die SystemObject.setName(String) Methode benutzt werden, weil dadurch erneut eine Anfrage an die Konfiguration verschickt werden würde.

      Der beschriebene Mechanismus muss nur durchgeführt werden wenn: Sich das Objekt im Cache des Meta-Datamodells befindet oder ein Listener auf Namensänderungen für den Typ des Objekt angemeldet ist.

      Sind beide Bedingungen nicht erfüllt kann die Namensänderung verworfen werden.

      Specified by:
      updateName in interface UpdateDynamicObjects
      Parameters:
      objectId - Id des Objekts, dessen Name aktualisiert werden soll
      typeId - Typ des Objekts, der informiert wird, dass sich der Name eines Objekts geändert hat
      newName - Neuer Name des Objekts
    • updateNotValidSince

      public void updateNotValidSince​(long objectId, long typeId, long invalidTime)
      Description copied from interface: UpdateDynamicObjects
      Diese Methode wird aufgerufen, wenn die Konfiguration propagiert, dass ein dynamisches Objekt ungültig wurde.

      Die Methode muss beim dynamischen Objekt den Zeitpunkt aktualisieren, an dem es ungültig wurde und der Methodenaufruf von SystemObject.isValid() muss false zurück geben. Der Typ des Objekts muss ebenfalls informatiert werden, dass das Objekt nicht mehr gültig ist. Dies ist nötig, weil eventuell Listener auf diese Änderungen angemeldet sind.

      Der beschriebene Mechanismus muss nur durchgeführt werden wenn: Sich das Objekt im Cache des Meta-Datamodells befindet oder ein Listener auf Invalidation für den Typ des Objekt angemeldet ist.

      Sind beide Bedingungen nicht erfüllt kann die Änderung verworfen werden.

      Specified by:
      updateNotValidSince in interface UpdateDynamicObjects
      Parameters:
      objectId - Id des Objekts, dessen UngültigAb-Wert aktualisiert werden soll
      typeId - Typ des Objekts, der informiert wird, dass das Objekt ungültig geworden ist
      invalidTime - Zeitpunkt, an dem das Objekt ungültig wurde
    • newDynamicObjectCreated

      public void newDynamicObjectCreated​(long objectId, long typeId)
      Description copied from interface: UpdateDynamicObjects
      Diese Methode wird aufgerufen, wenn die Konfiguration propagiert, dass ein neues dynamisches Objekt erzeugt wurde.

      Diese Information muss an den jeweiligen Typen des Objekt weitergereicht werden. Dies ist nötig, weil vielleicht Listener auf diese Information angemeldet sind. Ist dies der Fall, so muss das vollständige Objekt aus der Konfiguration angefordert werden.

      Specified by:
      newDynamicObjectCreated in interface UpdateDynamicObjects
      Parameters:
      objectId - Objekt, das neu angelegt wurde
      typeId - Typ des neuen Objekts. Dieser Typ wird darüber informiert, dass ein neues Objekt angelegt wurde.
    • getConfigurationData

      public Data[] getConfigurationData​(java.util.Collection<SystemObject> objects, AttributeGroupUsage usage)
      Liefert die konfigurierenden Datensätze einer Attributgruppenverwendung für mehrere Objekte zurück. Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Parameters:
      objects - Liste der Systemobjekten der gewünschten konfigurierenden Datensätze.
      usage - Attributgruppenverwendung der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Im Array enthält für jedes Element des Parameters objects einen korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppenverwendung Kombination hat.
    • getConfigurationData

      public Data[] getConfigurationData​(java.util.Collection<SystemObject> objects, AttributeGroup atg, Aspect asp)
      Description copied from interface: DataModel
      Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück. Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Specified by:
      getConfigurationData in interface DataModel
      Parameters:
      objects - Liste der Systemobjekte der gewünschten konfigurierenden Datensätze.
      atg - Attributgruppe der gewünschten Datensätze.
      asp - Aspekt der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Das Array enthält für jedes Element des Parameters objects einen korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt Kombination hat.
    • getConfigurationData

      public final Data[] getConfigurationData​(SystemObject[] objects, AttributeGroup atg)
      Description copied from interface: DataModel
      Liefert die konfigurierenden Datensätze einer Attributgruppe für mehrere Objekte zurück. Als Aspekt wird dabei asp.eigenschaften angenommen. Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Specified by:
      getConfigurationData in interface DataModel
      Parameters:
      objects - Array mit den Systemobjekten der gewünschten konfigurierenden Datensätze.
      atg - Attributgruppe der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Das Array enthält für jedes Element des Parameters objects einen korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt Kombination hat.
    • getConfigurationData

      public final Data[] getConfigurationData​(SystemObject[] objects, AttributeGroup atg, Aspect aspect)
      Description copied from interface: DataModel
      Liefert die konfigurierenden Datensätze einer Attributgruppe und eines Aspekts für mehrere Objekte zurück. Die zurückgelieferten Datensätze werden auch lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Specified by:
      getConfigurationData in interface DataModel
      Parameters:
      objects - Array mit den Systemobjekten der gewünschten konfigurierenden Datensätze.
      atg - Attributgruppe der gewünschten Datensätze.
      aspect - Aspekt der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Das Array enthält für jedes Element des Parameters objects einen korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppe-Aspekt Kombination hat.
    • getConfigurationData

      public final Data[] getConfigurationData​(SystemObject[] objects, AttributeGroupUsage usage)
      Liefert die konfigurierenden Datensätze einer Attributgruppenverwendung für mehrere Objekte zurück. Die Methode sendet eine Konfiguationsanfrage an die Konfiguration um die noch nicht im Zwischenspeicher vorhandenen Datensätze zu laden. Die zurückgelieferten Datensätze werden lokal zwischengespeichert und können mit der Methode SystemObject.getConfigurationData(de.bsvrz.dav.daf.main.config.AttributeGroup) ohne weitere Konfigurationsanfrage abgefragt werden. Die Methode kann somit zur Minimierung der Anzahl von Konfigurationsanfragen und den damit verbundenen Verzögerungszeiten eingesetzt werden.
      Parameters:
      objects - Array mit den Systemobjekten der gewünschten konfigurierenden Datensätze.
      usage - Attributgruppenverwendung der gewünschten Datensätze.
      Returns:
      Array mit den gewünschten konfigurierenden Datensätzen. Im Array existiert für jedes Element des Parameters objects ein korrespondierender konfigurierender Datensatz oder null, wenn das Objekt keinen Datensatz der angegebenen Attributgruppenverwendung Kombination hat.
    • getActiveVersion

      public short getActiveVersion​(ConfigurationArea configurationArea)
      Description copied from interface: DataModel
      Gibt die aktive Version des angegebenen Konfigurationsbereichs zurück.
      Specified by:
      getActiveVersion in interface DataModel
      Parameters:
      configurationArea - der Konfigurationsbereich
      Returns:
      Versionsnummer des Konfigurationsbereichs
    • getConfigurationAuthorityId

      public final long getConfigurationAuthorityId()
      Gibt die Objekt-Id des Konfigurationsverantwortlichen zurück.
      Returns:
      Die Objekt-Id des Konfigurationsverantwortlichen
    • getMainEventThread

      public DafMainEventThread getMainEventThread()
    • getAttributeGroupUsage

      public final AttributeGroupUsage getAttributeGroupUsage​(long usageIdentification)
      Description copied from interface: DataModel
      Bestimmt die Attributgruppenverwendung mit der angegebenen Datenverteiler-Identifizierung.
      Specified by:
      getAttributeGroupUsage in interface DataModel
      Parameters:
      usageIdentification - Identifizierung dieser Attributgruppenverwendung bei der Kommunikation über den Datenverteiler.
      Returns:
      Zur Identifizierung gehörende Attributgruppenverwendung oder null, wenn es keine Attributgruppenverwendung mit der angegebenen Identifizierung gibt.