Class ConfigurationObjectInformation

java.lang.Object
de.bsvrz.puk.config.configFile.fileaccess.SystemObjectInformation
de.bsvrz.puk.config.configFile.fileaccess.ConfigurationObjectInformation
All Implemented Interfaces:
ConfigurationObjectInfo, SystemObjectInformationInterface

public class ConfigurationObjectInformation
extends SystemObjectInformation
implements ConfigurationObjectInfo
Dieses Objekt stellt alle Informationen zur Verfügung, die für ein Konfigurationsobjekt relevant sind. Die Methoden sind Thread-sicher.

Falls das Objekt in eine Datei geschrieben werden soll, sollte das Objekt zum synchronisieren benutzt werden. Dies verhindert, dass sich das Objekt während des Schreibvorgangs verändert, lesende Zugriffe sind weiterhin möglich.

  • Constructor Details

    • ConfigurationObjectInformation

      public ConfigurationObjectInformation​(ConfigAreaFile configAreaFile, long id, java.lang.String pid, long typeId, java.lang.String name, short firstValidVersion, boolean saveModifications)
      Der Zeitpunkt, wann das Objekt ungültig wird, wird automatisch auf 0 gesetzt
      Parameters:
      configAreaFile - der Konfigurationsbereich
      id - Id des Objekts
      pid - Pid des Objekts
      typeId - Typ des Objekts, dieser wird über die Id des Typs identifiziert
      name - Name des Objekts, null wird als "" interpretiert
      firstValidVersion - Version, mit der das Objekt gütlig wird
      saveModifications - true = Das Objekt wird angelegt und in die Datei des Konfigurationsbereichs später gespeichert, werden Änderungen vorgenommen (Datensätze geändert, usw), so werden die Änderungen gespeichert; false = Das Objekt wird angelegt und nicht gespeichert (beim laden des Objekts aus der Datei wäre dies sinnvoll), acuh Modifikationen am Objekt werden nicht gespeichert, damit gespeichert wird muss SystemObjectInformation.saveObjectModifications() aufgerufen werden
    • ConfigurationObjectInformation

      public ConfigurationObjectInformation​(long id, java.lang.String pid, long typeId, java.lang.String name, short firstValidVersion, short firstInvalidVersion, ConfigAreaFile configAreaFile, boolean saveModifications)
      Parameters:
      id - Id des Objekts
      pid - Pid des Objekts
      typeId - Typ des Objekts, dieser wird über die Id des Typs identifiziert
      name - Name des Objekts, null wird als "" interpretiert
      firstValidVersion - Version, mit der das Objekt gütlig wird
      firstInvalidVersion - Version, mit der das Objekt ungütlig wird
      configAreaFile - der Konfigurationsbereich
      saveModifications - true = Das Objekt wird angelegt und in die Datei des Konfigurationsbereichs später gespeichert, werden Änderungen vorgenommen (Datensätze geändert, usw), so werden die Änderungen gespeichert; false = Das Objekt wird angelegt und nicht gespeichert (beim laden des Objekts aus der Datei wäre dies sinnvoll), acuh Modifikationen am Objekt werden nicht gespeichert, damit gespeichert wird muss SystemObjectInformation.saveObjectModifications() aufgerufen werden
  • Method Details

    • getFirstValidVersion

      public short getFirstValidVersion()
      Description copied from interface: ConfigurationObjectInfo
      Diese Methode gibt an, mit welcher Version des Konfigurationsbereichs das Konfigurationsobjekt gültig werden soll/sollte.
      Specified by:
      getFirstValidVersion in interface ConfigurationObjectInfo
      Returns:
      s.o
    • getFirstInvalidVersion

      public short getFirstInvalidVersion()
      Gibt die Version zurück, mit der das Objekt ungültig wird. Der Zugriff ist synchonisiert, weil zum Zeitpunkt des Zugriffs, das Objekt gerade gesetzt werden könnte.
      Specified by:
      getFirstInvalidVersion in interface ConfigurationObjectInfo
      Returns:
      Version, mit der das Objekt ungültig wird
    • invalidate

      public void invalidate()
      Das Konfigurationsobjekt wird mit der nächsten Version des Konfigurationsbereichs ungültig. Diese Objekte müssen nicht sofort gespeichert werden, da sie bis zum beenden der Konfiguration im Speicher bleiben.

      War das Objekt noch nicht gültig, so wird es direkt gelöscht.

      Specified by:
      invalidate in interface ConfigurationObjectInfo
      See Also:
      revalidate()
    • revalidate

      public void revalidate()
      Solange der Konfigurationsbereich noch nicht in eine neue Version überführt wurde, kann ein Konfigurationsobjekt, welches auf ungültig gesetzt wurde, mit dieser Methode wieder auf gültig gesetzt werden.
      Specified by:
      revalidate in interface ConfigurationObjectInfo
      See Also:
      invalidate()
    • getObjectSetIds

      public long[] getObjectSetIds()
      Description copied from interface: ConfigurationObjectInfo
      Diese Methode gibt die IdŽs aller Mengen zurück, die an dem Konfigurationsobjekt gespeichert sind.
      Specified by:
      getObjectSetIds in interface ConfigurationObjectInfo
      Returns:
      s.o.
    • addObjectSetId

      public void addObjectSetId​(long setId) throws java.lang.IllegalStateException
      Description copied from interface: ConfigurationObjectInfo
      Diese Methode fügt eine leere Menge an ein Konfigurationsobjekt hinzu.
      Specified by:
      addObjectSetId in interface ConfigurationObjectInfo
      Parameters:
      setId - Id der Menge, die zu dem Konfigurationsobjekt hinzugefügt werden soll
      Throws:
      java.lang.IllegalStateException - Eine Menge mit der Id existiert bereits an diesem Objekt
    • getObjectSetObjects

      public long[] getObjectSetObjects​(long setId)
      Description copied from interface: ConfigurationObjectInfo
      Diese Methode gibt zu einer Menge, die zu diesem Konfigurationsobjekt gehört, alle IdŽs der jeweiligen Objekte zurück, die sich in der Menge befinden.
      Specified by:
      getObjectSetObjects in interface ConfigurationObjectInfo
      Parameters:
      setId - Menge, die zu dem Konigurationsobjekt gehört
      Returns:
      Objekte, die in der Menge gespeichert sind, die mit der setId identifiziert wurde
    • addObjectSetObject

      public void addObjectSetObject​(long setId, long objectId) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
      Description copied from interface: ConfigurationObjectInfo
      Diese Methode fügt ein Objekt zu einer bestehenden Menge hinzu. Die Menge wird über die Id identifiziert.
      Specified by:
      addObjectSetObject in interface ConfigurationObjectInfo
      Parameters:
      setId - Menge, zu der das Objekt hinzugefügt werden soll
      objectId - Objekt, das zu der Menge hinzugefügt werden soll
      Throws:
      java.lang.IllegalArgumentException - Die Menge existiert nicht an dem Konfigurationsobjekt
      java.lang.IllegalStateException - Ein Objekt mit der Id existiert bereits in der Menge
    • isDeleted

      public boolean isDeleted()
      Description copied from interface: SystemObjectInformationInterface
      Gibt zurück, ob das Objekt bereits gelöscht wurde. Danach sind beispielsweise Änderungen an den Konfigurationsdaten verboten, da das Objekt dann unerlaubterweise aus den NGA-Blöcken (oder dem NgDyn-Block) in die Mischmenge wandern würde.
      Specified by:
      isDeleted in interface SystemObjectInformationInterface
      Returns:
      true: wurde schon gelöscht, false: Objekt ist gültig oder wird in Zukunft gültig (Objekt befindet sich sicher in der Mischmenge)
    • getLastFilePosition

      public FilePointer getLastFilePosition()
      Specified by:
      getLastFilePosition in class SystemObjectInformation
    • setLastFilePosition

      public void setLastFilePosition​(FilePointer lastFilePosition)
      Specified by:
      setLastFilePosition in class SystemObjectInformation
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class SystemObjectInformation
    • getConfigAreaFile

      public ConfigAreaFile getConfigAreaFile()
      Description copied from interface: SystemObjectInformationInterface
      Gibt die zugehörige Konfigurationsdatei zurück
      Specified by:
      getConfigAreaFile in interface SystemObjectInformationInterface
      Returns:
      die zugehörige Konfigurationsdatei