public class ConfigSimulationObject
extends java.lang.Object
Dieses Objekt stellt eine Simulation aus Sicht der Konfiguration dar. Das Objekt meldet sich auf alle nötigen Attributgruppen an und verschickt die benötigten Datensätze.
Modifier and Type | Class and Description |
---|---|
private class |
ConfigSimulationObject.StateChangeReceiver |
Modifier and Type | Field and Description |
---|---|
private ClientDavInterface |
_connection |
private static Debug |
_debug |
private SimulationStates |
_deleted |
private SimulationStates |
_newSimulation |
private SimulationStates |
_notReady |
private boolean |
_offlineSimulation
true = Es handlet sich um eine Offline-Simulation.
|
private SimulationStates |
_ready |
private SourceSimulationStatus |
_senderSimulationStatus
Dieses Objekt kann den Zustand der Simulation propagieren.
|
private SystemObject |
_simulationObject |
private DataDescription |
_simulationsStreckenBeschreibung
Alle Eigenschaften der Simulation, die Mengen und Objekte betreffen, die speziell behandelt werden sollen.
|
private SystemObject |
_simulationsStreckenObjekt
Das Objekt spiegelt die Simulationsstrecke wieder.
|
private SimulationStates |
_simulationState |
private short |
_simulationVariant
Simulationsvariante der Simulation
|
private java.util.Set<DynamicObjectType> |
_specialDynamicTypes
Enthält alle dynamischen Typen, deren Objekte gesondert behandelt werden müssen.
|
private java.util.Set<ObjectSetType> |
_specialObjectSetTypes
Speichert alle Mengentypen, die bei Simulationen speziell behandelt werden müssen.
|
private ConfigSimulationObject.StateChangeReceiver |
_stateChangeReceiver |
private DataDescription |
_stateDataDescription
Datenidentifikation für Statusänderungen
|
private java.lang.Object |
_stateLock
Auf dieses Objekt wird synchronisiert, sobald mit der Variablen
_simulationState gearbeitet wird. |
Constructor and Description |
---|
ConfigSimulationObject(ClientDavInterface connection,
SystemObject simulationObject,
ConfigurationQueryManager configurationQueryManager)
Dieses Objekt stellt aus Sicht der Konfiguration eine Simulation dar.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
cleanUpSets()
Der Aufruf dieser Methode bewirkt, dass alle Mengen der im Konstruktor übergebenen Mengentypen, bearbeitet werden.
|
(package private) SimulationStates |
getDeletedState() |
(package private) SimulationStates |
getNotReadyState() |
(package private) SimulationStates |
getReadyState() |
SystemObject |
getSimulationObject()
Gibt das Systemobject zurück, das aus Sicht des Datenverteilers eine Simulation darstellt.
|
short |
getSimulationVariant() |
(package private) void |
getSpecialTypes()
Fordert einen Datensatz an und ließt alle Typen von Mengen aus, die speziell behandelt werden sollen.
|
boolean |
isOfflineSimulation() |
boolean |
isSpecialTreatedDynamicObjectType(DynamicObjectType dynamicObjectType)
Diese Methode prüft ob der übergeben Typ speziell behandelt werden soll.
|
boolean |
isSpecialTreatedSetType(ObjectSetType setType)
Prüft, ob der Typ einer Menge zu den Typen gehört, die an Simulationsstrecke festgelegt wurden.
|
(package private) void |
setState(SimulationStates state) |
void |
simulationRemovedFromSet()
Diese Methode wird aufgerufen sobald die Simulation, die zu diesem Objekt gehört, aus der Menge der Simulationen entfernt wird.
|
private static final Debug _debug
private final ClientDavInterface _connection
private SimulationStates _simulationState
private final DataDescription _stateDataDescription
Datenidentifikation für Statusänderungen
private final ConfigSimulationObject.StateChangeReceiver _stateChangeReceiver
private final SimulationStates _newSimulation
private final SimulationStates _ready
private final SimulationStates _notReady
private final SimulationStates _deleted
private final boolean _offlineSimulation
true = Es handlet sich um eine Offline-Simulation. Es stehen Zeitstempel zur Verfügung. false = Es handelt sich um eine Online-Simulation, es stehen keine Zeitstempel zur Verfügung.
private final SourceSimulationStatus _senderSimulationStatus
Dieses Objekt kann den Zustand der Simulation propagieren. Es findet eine Quellenanmeldung/Abmeldung statt.
private final java.lang.Object _stateLock
Auf dieses Objekt wird synchronisiert, sobald mit der Variablen _simulationState
gearbeitet wird. Es kann nicht auf die Variable selbst gelockt werden, da sich diese mit jeder Zustandänderung ändert.
private java.util.Set<ObjectSetType> _specialObjectSetTypes
Speichert alle Mengentypen, die bei Simulationen speziell behandelt werden müssen.
Bei speziellen Mengentypen muss beim hinzufügen von Elementen zu dieser Art von Mengen das Element in der Simulationsvariante der Simulation gespeichert werden.
Beim lesenden Zugriff werden nur Elemente der Simulationsvariante angefordert.
Alle Mengen, zu denen Elemente hinzugefügt wurden, werden um diese Elemte bereinigt wenn die dynamischen Objekte gelöscht werden (Vorstart, löschen der Simulation).
private java.util.Set<DynamicObjectType> _specialDynamicTypes
Enthält alle dynamischen Typen, deren Objekte gesondert behandelt werden müssen. Soll ein dynamisches Objekt mit einem dieser Typen erzeugt werden, so muss die Simulationsvariante berücksichtigt werden.
private short _simulationVariant
Simulationsvariante der Simulation
private final SystemObject _simulationObject
private final SystemObject _simulationsStreckenObjekt
Das Objekt spiegelt die Simulationsstrecke wieder. Von diesem Objekte können die spezielle zu behandelnden Mengen/Objekte angefordert werden. Siehe auch _simulationsStreckenBeschreibung
.
private DataDescription _simulationsStreckenBeschreibung
Alle Eigenschaften der Simulation, die Mengen und Objekte betreffen, die speziell behandelt werden sollen. Das Simulationsobjekt wird beim Neustart und Vorstart den aktuellen Datensatz anfordern und die Datenstrukturen entsprechend anpassen.
public ConfigSimulationObject(ClientDavInterface connection, SystemObject simulationObject, ConfigurationQueryManager configurationQueryManager) throws OneSubscriptionPerSendData
Dieses Objekt stellt aus Sicht der Konfiguration eine Simulation dar. Das Objekt meldet sich als Empfänger für die Zustände der Simulation an und als Sender
connection
- simulationObject
- SystemObject vom Typ typ.simulation.configurationQueryManager
- Objekt, mit denen das Objekt die Konfiguration beauftragen kann, einen Empfänger für Konfigurationsanfragen für diese Simulationsvariante anzumelden/abzumeldenOneSubscriptionPerSendData
void setState(SimulationStates state)
SimulationStates getNotReadyState()
SimulationStates getReadyState()
SimulationStates getDeletedState()
void getSpecialTypes()
Fordert einen Datensatz an und ließt alle Typen von Mengen aus, die speziell behandelt werden sollen. Das gleiche gilt für Typen von dynamischen Objekten.
Die Datenstrukturen, die diese Informationen speichern, werden dadurch auf den neusten Stand gebracht.
Diese Methode sollte beim Neustart einer Simulation (Konstruktor) und beim Vorstart aufgerufen werden.
public SystemObject getSimulationObject()
Gibt das Systemobject zurück, das aus Sicht des Datenverteilers eine Simulation darstellt.
public void simulationRemovedFromSet()
Diese Methode wird aufgerufen sobald die Simulation, die zu diesem Objekt gehört, aus der Menge der Simulationen entfernt wird. Dieser Aufruf kann jederzeit von außen geschehen.
Alle Mengen, die speziell behandelt werden sollen, werden aufgeräumt.
void cleanUpSets()
Der Aufruf dieser Methode bewirkt, dass alle Mengen der im Konstruktor übergebenen Mengentypen, bearbeitet werden. Dabei werden alle Elemente, die durch die Simulation angelegt werden, aus den jeweiligen Mengen entfernt.
public short getSimulationVariant()
public boolean isOfflineSimulation()
public boolean isSpecialTreatedSetType(ObjectSetType setType)
Prüft, ob der Typ einer Menge zu den Typen gehört, die an Simulationsstrecke festgelegt wurden. Ist dies der Fall, müssen die Mengen dieses Typs speziell behandlet werden (lesender und schreibender Zugriff auf die Menge über die Simulationsvariante).
setType
- Mengentyp, der geprüft werden soll. Vererbung wird nicht berücksichtigt.public boolean isSpecialTreatedDynamicObjectType(DynamicObjectType dynamicObjectType)
Diese Methode prüft ob der übergeben Typ speziell behandelt werden soll. Die ist der Fall, wenn der Typ an einer Simulationsstrecke eingetragen ist.
Die Auswirkungen sind, dass neue Objekte, die vom übergebnen Typ sein sollen, mit der Simulationsvariante der Simulation angelegt werden müssen, usw..
dynamicObjectType
- dynamischer Typ, der geprüft werden soll