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, setReferenceclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetConfigurationData, getConfigurationDataOptional, getConfigurationsDataAttributeGroupUsageIds, getID, getName, getPid, getTypeId, removeConfigurationData, setConfigurationData, setNameprivate 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.IOExceptionNoSuchVersionExceptionstatic 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.IOExceptionNoSuchVersionExceptionpublic long getFirstValidTime()
DynamicObjectInfoDiese Methode gibt an, zu welchem Zeitpunkt das dynamische Objekt des Konfigurationsbereichs gültig wird/wurde.
getFirstValidTime in interface DynamicObjectInfopublic long getFirstInvalidTime()
DynamicObjectInfoDiese 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 DynamicObjectInfopublic void setInvalid()
Objekt auf Invalid setzen und sofort speichern
setInvalid in interface DynamicObjectInfopublic short getSimulationVariant()
DynamicObjectInfoDiese Methode gibt die Simulationsvariante des dynamischen Objekts zurück.
getSimulationVariant in interface DynamicObjectInfopublic void remove()
DynamicObjectInfoDiese 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 DynamicObjectInfopublic DynamicObjectType.PersistenceMode getPersPersistenceMode()
DynamicObjectInfoGibt den Persistenzmodus des dynamischen Objekts zurück.
getPersPersistenceMode in interface DynamicObjectInfopublic boolean isDeleted()
SystemObjectInformationInterfaceGibt 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 SystemObjectInformationInterfacepublic FilePointer getLastFilePosition()
getLastFilePosition in class SystemObjectInformationpublic void setLastFilePosition(FilePointer lastFilePosition)
setLastFilePosition in class SystemObjectInformationpublic ConfigAreaFile getConfigAreaFile()
SystemObjectInformationInterfaceGibt die zugehörige Konfigurationsdatei zurück
getConfigAreaFile in interface SystemObjectInformationInterfacepublic java.lang.String toString()
toString in class SystemObjectInformation