Class DynamicObjectInformation

  • All Implemented Interfaces:
    DynamicObjectInfo, SystemObjectInformationInterface

    public class DynamicObjectInformation
    extends SystemObjectInformation
    implements DynamicObjectInfo
    Diese Klasse stellt alle Informationen zur Verfügung, die für ein dynamisches Objekt in der Konfiguration benötigt werden.

    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

      • DynamicObjectInformation

        public DynamicObjectInformation​(long id,
                                        java.lang.String pid,
                                        long typeId,
                                        java.lang.String name,
                                        short simulationVariant,
                                        long firstValidTime,
                                        ConfigAreaFile configAreaFile,
                                        boolean saveModifications,
                                        de.bsvrz.dav.daf.main.config.DynamicObjectType.PersistenceMode persistenceMode)
        Parameters:
        id - Id des Objekts
        pid - Pid des Objekts
        typeId - Tye des Objekts, der Type wird über die Id identifiziert
        name - Name des Objekts, null wird als "" interpretiert
        simulationVariant - Simulationsvariante des dynamischen Objekts
        firstValidTime - Zeitpunkt, an dem das dynamische Objekt gültig werden soll
        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), auch Modifikationen am Objekt werden nicht gespeichert, damit gespeichert wird muss SystemObjectInformation.saveObjectModifications() aufgerufen werden
        persistenceMode - Persistenzmodus des dynamischen Objekts.
      • DynamicObjectInformation

        public DynamicObjectInformation​(long id,
                                        java.lang.String pid,
                                        long typeId,
                                        java.lang.String name,
                                        short simulationVariant,
                                        long firstValidTime,
                                        long firstInvalidTime,
                                        ConfigAreaFile configAreaFile,
                                        boolean saveModifications)
        Mit diesem Konstruktor können nur "nicht transiente" Objekte erzeugt werden.
        Parameters:
        id -
        pid -
        typeId -
        name -
        simulationVariant -
        firstValidTime -
        firstInvalidTime -
        configAreaFile -
        saveModifications -
    • Method Detail

      • setTestWithSynchronizedSleep

        public static void setTestWithSynchronizedSleep​(boolean testWithSynchronizedSleep)
        Parameters:
        testWithSynchronizedSleep - Wenn true übergeben wird, dann wird in nachfolgenden Aufrufen der Methode setInvalid() ein sleep von 10ms ausgeführt, das einen potentiellen Deadlock aufdecken würde.
      • getFirstValidTime

        public long getFirstValidTime()
        Description copied from interface: DynamicObjectInfo
        Diese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs gültig wird/wurde.
        Specified by:
        getFirstValidTime in interface DynamicObjectInfo
        Returns:
        s.o.
      • getFirstInvalidTime

        public long getFirstInvalidTime()
        Description copied from interface: DynamicObjectInfo
        Diese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs ungültig wird/wurde. Der Wert "0" bedeutet, dass dieser Zeitpunkt noch unbekannt ist und das das Objekt bis zu Festlegung dieses Zeitpunkt gültig bleibt.
        Specified by:
        getFirstInvalidTime in interface DynamicObjectInfo
        Returns:
        s.o.
      • setInvalid

        public void setInvalid()
        Objekt auf Invalid setzen und sofort speichern
        Specified by:
        setInvalid in interface DynamicObjectInfo
      • getSimulationVariant

        public short getSimulationVariant()
        Description copied from interface: DynamicObjectInfo
        Diese Methode gibt die Simulationsvariante des dynamischen Objekts zurück.
        Specified by:
        getSimulationVariant in interface DynamicObjectInfo
        Returns:
        s.o.
      • remove

        public void remove()
        Description copied from interface: DynamicObjectInfo
        Diese Methode löscht ein dynamisches Objekt. Das Objekt steht danach nicht mehr zur Verfügung und kann nicht mehr rekonstruiert werden.

        Eventuelle Informationen in Dateien und/oder in Datenstrukturen müssen entfernt werden und dürfen auch nach Neustart des Systems nicht mehr zur Verfügung stehen.

        Specified by:
        remove in interface DynamicObjectInfo
      • getPersPersistenceMode

        public de.bsvrz.dav.daf.main.config.DynamicObjectType.PersistenceMode getPersPersistenceMode()
        Description copied from interface: DynamicObjectInfo
        Gibt den Persistenzmodus des dynamischen Objekts zurück.
        Specified by:
        getPersPersistenceMode in interface DynamicObjectInfo
        Returns:
        PersistenceMode
      • 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)