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.
Modifier and Type | Field and Description |
---|---|
private static Debug |
_debug
DebugLogger für Debug-Ausgaben
|
private long |
_firstInvalidTime |
private long |
_firstValidTime |
private FilePointer |
_lastFilePosition
Speichert die letzte abselute Position ab, an der das Objekt gespeichert wurde
|
private ConfigAreaFile |
_modifiedManager
Dieses Objekt übernimmt die persistente Speicherung des Objekts und kann es gleichzeitig aus der Datei wieder entfernen.
|
private DynamicObjectType.PersistenceMode |
_persistenceMode |
private short |
_simulationVariant |
private static boolean |
_testWithSynchronizedSleep
Für automatisierte Tests wird bei
true innerhalb der setInvalid-Methode ein sleep von 10ms ausgeführt, das einen potentiellen Deadlock aufdecken würde. |
_saveModifications
Constructor and Description |
---|
DynamicObjectInformation(long id,
java.lang.String pid,
long typeId,
java.lang.String name,
short simulationVariant,
long firstValidTime,
ConfigAreaFile configAreaFile,
boolean saveModifications,
DynamicObjectType.PersistenceMode persistenceMode) |
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.
|
Modifier and Type | Method and Description |
---|---|
(package private) static DynamicObjectInformation |
fromBinaryObject(ConfigAreaFile configAreaFile,
long filePosition,
BinaryDynamicObject binaryDynamicObject) |
ConfigAreaFile |
getConfigAreaFile()
Gibt die zugehörige Konfigurationsdatei zurück
|
long |
getFirstInvalidTime()
Diese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs ungültig wird/wurde.
|
long |
getFirstValidTime()
Diese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs gültig wird/wurde.
|
FilePointer |
getLastFilePosition() |
DynamicObjectType.PersistenceMode |
getPersPersistenceMode()
Gibt den Persistenzmodus des dynamischen Objekts zurück.
|
short |
getSimulationVariant()
Diese Methode gibt die Simulationsvariante des dynamischen Objekts zurück.
|
(package private) static DynamicObjectInformation |
getSystemObjectInformation(ConfigAreaFile configAreaFile,
long filePosition,
long id,
long typeId,
long firstInvalid,
long firstValid,
short simulationVariant,
byte[] packedBytes) |
boolean |
isDeleted()
Gibt zurück, ob das Objekt bereits gelöscht wurde.
|
void |
remove()
Diese Methode löscht ein dynamisches Objekt.
|
void |
setInvalid()
Objekt auf Invalid setzen und sofort speichern
|
void |
setLastFilePosition(FilePointer lastFilePosition) |
static void |
setTestWithSynchronizedSleep(boolean testWithSynchronizedSleep) |
java.lang.String |
toString() |
equals, getConfigurationAreaFile, getConfigurationData, getConfigurationDataOptional, getConfigurationsDataAttributeGroupUsageIds, getID, getName, getPid, getPidHashCode, getReference, getTypeId, hashCode, removeConfigurationData, saveObjectModifications, setConfigurationData, setName, setReference
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getConfigurationData, getConfigurationDataOptional, getConfigurationsDataAttributeGroupUsageIds, getID, getName, getPid, getTypeId, removeConfigurationData, setConfigurationData, setName
private static final Debug _debug
DebugLogger für Debug-Ausgaben
private final long _firstValidTime
private long _firstInvalidTime
private short _simulationVariant
private FilePointer _lastFilePosition
Speichert die letzte abselute Position ab, an der das Objekt gespeichert wurde
private final ConfigAreaFile _modifiedManager
Dieses Objekt übernimmt die persistente Speicherung des Objekts und kann es gleichzeitig aus der Datei wieder entfernen.
private final DynamicObjectType.PersistenceMode _persistenceMode
private static boolean _testWithSynchronizedSleep
Für automatisierte Tests wird bei true
innerhalb der setInvalid-Methode ein sleep von 10ms ausgeführt, das einen potentiellen Deadlock aufdecken würde.
public DynamicObjectInformation(long id, java.lang.String pid, long typeId, java.lang.String name, short simulationVariant, long firstValidTime, ConfigAreaFile configAreaFile, boolean saveModifications, DynamicObjectType.PersistenceMode persistenceMode)
id
- Id des Objektspid
- Pid des ObjektstypeId
- Tye des Objekts, der Type wird über die Id identifiziertname
- Name des Objekts, null
wird als "" interpretiertsimulationVariant
- Simulationsvariante des dynamischen ObjektsfirstValidTime
- Zeitpunkt, an dem das dynamische Objekt gültig werden sollsaveModifications
- 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 werdenpersistenceMode
- Persistenzmodus des dynamischen Objekts.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.
id
- pid
- typeId
- name
- simulationVariant
- firstValidTime
- firstInvalidTime
- configAreaFile
- saveModifications
- public static void setTestWithSynchronizedSleep(boolean testWithSynchronizedSleep)
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.static DynamicObjectInformation fromBinaryObject(ConfigAreaFile configAreaFile, long filePosition, BinaryDynamicObject binaryDynamicObject) throws java.io.IOException, NoSuchVersionException
java.io.IOException
NoSuchVersionException
static DynamicObjectInformation getSystemObjectInformation(ConfigAreaFile configAreaFile, long filePosition, long id, long typeId, long firstInvalid, long firstValid, short simulationVariant, byte[] packedBytes) throws java.io.IOException, NoSuchVersionException
java.io.IOException
NoSuchVersionException
public long getFirstValidTime()
DynamicObjectInfo
Diese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs gültig wird/wurde.
getFirstValidTime
in interface DynamicObjectInfo
public long getFirstInvalidTime()
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.
getFirstInvalidTime
in interface DynamicObjectInfo
public void setInvalid()
Objekt auf Invalid setzen und sofort speichern
setInvalid
in interface DynamicObjectInfo
public short getSimulationVariant()
DynamicObjectInfo
Diese Methode gibt die Simulationsvariante des dynamischen Objekts zurück.
getSimulationVariant
in interface DynamicObjectInfo
public void remove()
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.
remove
in interface DynamicObjectInfo
public DynamicObjectType.PersistenceMode getPersPersistenceMode()
DynamicObjectInfo
Gibt den Persistenzmodus des dynamischen Objekts zurück.
getPersPersistenceMode
in interface DynamicObjectInfo
public boolean isDeleted()
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.
isDeleted
in interface SystemObjectInformationInterface
public FilePointer getLastFilePosition()
getLastFilePosition
in class SystemObjectInformation
public void setLastFilePosition(FilePointer lastFilePosition)
setLastFilePosition
in class SystemObjectInformation
public ConfigAreaFile getConfigAreaFile()
SystemObjectInformationInterface
Gibt die zugehörige Konfigurationsdatei zurück
getConfigAreaFile
in interface SystemObjectInformationInterface
public java.lang.String toString()
toString
in class SystemObjectInformation