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

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

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