private class ConfigurationQueryManager.QueryHandler
extends java.lang.Object
implements java.lang.Runnable
Modifier and Type | Class and Description |
---|---|
private class |
ConfigurationQueryManager.QueryHandler.MutableSetChangePublisher
Diese Klasse wird bei Dynamischen Mengen angemeldet, wenn man über Änderungen der dynamischen Menge informiert werden möchte.
|
private class |
ConfigurationQueryManager.QueryHandler.PublishingCommunicationStateListener
Intern verwendeter Listener für Anmeldungen auf Änderungen der Elemente von dynamischen Zusammenstellungen.
|
private class |
ConfigurationQueryManager.QueryHandler.PublishingMutableCollectionChangeListener
Intern verwendeter Listener für Anmeldungen auf Änderungen der Elemente von dynamischen Zusammenstellungen.
|
Modifier and Type | Field and Description |
---|---|
private java.util.HashMap<ConfigurationQueryManager.QueryHandler.PublishingCommunicationStateListener,ConfigurationQueryManager.QueryHandler.PublishingCommunicationStateListener> |
_communicationChangedHandlers |
private DataDescription |
_dataDescriptionAreaLocal
Datenidentifikation für Konfigurationsanfragen, die Konfigurationsbereiche steuern.
|
private DataDescription |
_dataDescriptionReadLocal
Datenidentifikation für lesende Konfigurationsanfragen.
|
private DataDescription |
_dataDescriptionUserLocal
Datenidentifikation für Konfigurationsanfragen, die Benutzer beeinflussen.
|
private DataDescription |
_dataDescriptionWriteLocal
Datenidentifikation für schreibende Konfigurationsanfragen.
|
private java.util.Map<DynamicObjectType,InvalidationListener> |
_invalidationListenerForAllTyps
Enthält für jeden dynamischen Typ einen Listener.
|
private boolean |
_isRequestFromApplication
true , wenn der Kommunikationspartner eine normale Applikation ist; false , wenn der Kommunikationspartner eine andere Konfiguration ist |
(package private) java.lang.Object |
_lock |
private java.lang.Object |
_lockPublisher
Lockt die Zugriffe auf den Publisher.
|
private java.util.Set<DynamicObject> |
_monitoredDynamicObject
Enthält alle dynamischen Objekte, zu denen es einen
_invalidationListenerPublisher gibt. |
private java.util.Map<ConfigurationQueryManager.QueryHandler.PublishingMutableCollectionChangeListener,ConfigurationQueryManager.QueryHandler.PublishingMutableCollectionChangeListener> |
_mutableCollectionChangeHandlers
Map, die die angemeldeten Listener für Änderungen der Elemente von dynamischen Zusammenstellungen speichert, für Key und Value wird das selbe Listener-Objekt verwendet.
|
private java.util.Map<DynamicObjectType,DynamicObjectType.NameChangeListener> |
_nameChangedListener
Enthält für jeden dynamischen Typ einen Listener.
|
private java.util.Map<DynamicObjectType,DynamicObjectType.DynamicObjectCreatedListener> |
_objectCreatedListener
Enthält für jeden dynamischen Typ einen Listener.
|
private ConfigurationQueryManager.QueryHandler.MutableSetChangePublisher |
_publisher
Objekt, welches bei dynamischen Mengen genutzt wird, um die Änderungen an diesen Mengen zu publizieren.
|
private java.util.Set<MutableSet> |
_publisherSets
Merkt sich alle dynamischen Mengen, bei denen ein Beobachter (MutableSetChangePublisher) angemeldet wurde.
|
(package private) UnboundedQueue<ResultData> |
_queries |
private SystemObject |
_querySender |
private SenderReceiverCommunication |
_senderReplyAreaTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
|
private SenderReceiverCommunication |
_senderReplyReadTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
|
private SenderReceiverCommunication |
_senderReplyUserAdministrationTask
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
|
private SenderReceiverCommunication |
_senderReplyWriteTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
|
private ConfigSimulationObject |
_simulationObject
Objekt, das aus Sicht der Konfiguration eine Simulation darstellt.
|
private short |
_simulationVariant
Wird für Anmdeldung als Sender/Empfänger benötigt
|
private SrpUserAdministrationReceiver |
_srpUserAdministrationReceiver |
(package private) java.lang.Thread |
_worker |
Constructor and Description |
---|
QueryHandler(SystemObject querySender,
short simulationVariant,
ConfigSimulationObject simulationObject)
Bearbeitet Konfigurationsanfragen und reicht diese an das Datenmodell weiter und verschickt anschließend die Antwort.
|
Modifier and Type | Method and Description |
---|---|
private java.util.Collection<ConfigAreaAndVersion> |
createAreaAndVersion(Deserializer deserializer)
Ließt aus einem Deserializer Konfigurationsbereiche und zugehörige Versionen aus.
|
private DynamicObject |
createDynamicObject(ConfigConfigurationArea configurationArea,
DynamicObjectType type,
java.lang.String pid,
java.lang.String name,
java.util.List<DataAndATGUsageInformation> data,
boolean useOldCreateMethod)
Diese Methode erzeugt ein dynamisches Objekt.
|
private ObjectTimeSpecification |
deserializeObjectTimeSpecification(Deserializer deserializer)
Ließt aus einem Deserialisierer ein Objekt vom Typ ObjectTimeSpecification aus.
|
private void |
detachListener()
Meldet alle Listener ab, die auf Änderungen bei dynamischen Typen angemeldet waren.
|
private void |
detachSelf() |
private java.lang.String |
generateErrorReply(Serializer serializer,
java.lang.Exception exception) |
private short |
getInternalSimVariant(short externalSimVariant,
MutableCollection mutableCollection)
Ermittelt die Simulationsvariante für interne Anmeldungen auf Änderungen der Elemente von dynamischen Zusammenstellungen.
|
private void |
handleChangeElementsRequest(Deserializer deserializer,
Serializer serializer,
ObjectSet set,
boolean mutableSet,
boolean considerSimulationVariant)
Bearbeitet eine Anfrage vom Typ “DynamischeMengeElementeÄndern” oder “KonfigurierendeMengeElementeÄndern”.
|
private void |
handleQuery(ResultData resultData) |
void |
run() |
private void |
serializeObjectList(Serializer serializer,
java.util.List<SystemObject> result)
Schreibt eine Liste mit Systemobjekten in eine Serializer.
|
private void |
transferConsistencyCheckResult(ConsistencyCheckResultInterface consistencyCheckResult,
Serializer serializer)
Schreibt das Ergebnis einer Konsistenzprüfung in einen Serialisierer.
|
private void |
transferList(java.util.List<ConsistencyCheckResultEntry> errorOrWarning,
Serializer serializer)
Schreibt eine Liste, die lokale/Interferenzfehler oder Warnungen enthält in einen Serializer.
|
private void |
writeSystemObject(Serializer serializer,
SystemObject systemObject,
long queryId,
java.lang.String queryPid)
Deprecated.
|
private final SystemObject _querySender
private boolean _isRequestFromApplication
true
, wenn der Kommunikationspartner eine normale Applikation ist; false
, wenn der Kommunikationspartner eine andere Konfiguration ist
java.lang.Thread _worker
UnboundedQueue<ResultData> _queries
java.lang.Object _lock
private java.lang.Object _lockPublisher
Lockt die Zugriffe auf den Publisher.
private ConfigurationQueryManager.QueryHandler.MutableSetChangePublisher _publisher
Objekt, welches bei dynamischen Mengen genutzt wird, um die Änderungen an diesen Mengen zu publizieren.
private java.util.Set<MutableSet> _publisherSets
Merkt sich alle dynamischen Mengen, bei denen ein Beobachter (MutableSetChangePublisher) angemeldet wurde.
private java.util.Set<DynamicObject> _monitoredDynamicObject
Enthält alle dynamischen Objekte, zu denen es einen _invalidationListenerPublisher
gibt.
private final SenderReceiverCommunication _senderReplyReadTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
private final SenderReceiverCommunication _senderReplyWriteTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
private final SenderReceiverCommunication _senderReplyAreaTasks
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
private final SenderReceiverCommunication _senderReplyUserAdministrationTask
Objekt, das den Versand von Konfigurationsanfragen(die Antwort darauf) übernimmt.
private final DataDescription _dataDescriptionReadLocal
Datenidentifikation für lesende Konfigurationsanfragen. Die Simulationsvariante wird beachtet.
private final DataDescription _dataDescriptionWriteLocal
Datenidentifikation für schreibende Konfigurationsanfragen. Die Simulationsvariante wird beachtet.
private final DataDescription _dataDescriptionAreaLocal
Datenidentifikation für Konfigurationsanfragen, die Konfigurationsbereiche steuern. Die Identifikation wird auch bei Simulationen erzeugt, um eine Null-Pointer Exception zu verhindern. Allerdings wird weder ein Sender noch ein Empfänger für diese Anfragen angemeldet.
private final DataDescription _dataDescriptionUserLocal
Datenidentifikation für Konfigurationsanfragen, die Benutzer beeinflussen. Die Identifikation wird auch bei Simulationen erzeugt, um eine Null-Pointer Exception zu verhindern. Allerdings wird weder ein Sender noch ein Empfänger für diese Anfragen angemeldet.
private final short _simulationVariant
Wird für Anmdeldung als Sender/Empfänger benötigt
private ConfigSimulationObject _simulationObject
Objekt, das aus Sicht der Konfiguration eine Simulation darstellt. Ist die _simulationVariant
> 0, so muss dieses Objekt vorhanden sein.
private final java.util.Map<DynamicObjectType,InvalidationListener> _invalidationListenerForAllTyps
Enthält für jeden dynamischen Typ einen Listener. Die Listener werden gespeichert, um sie später wieder abmelden zu können.
private final java.util.Map<DynamicObjectType,DynamicObjectType.NameChangeListener> _nameChangedListener
Enthält für jeden dynamischen Typ einen Listener. Die Listener werden gespeichert, um sie später wieder abmelden zu können.
private final java.util.Map<DynamicObjectType,DynamicObjectType.DynamicObjectCreatedListener> _objectCreatedListener
Enthält für jeden dynamischen Typ einen Listener. Die Listener werden gespeichert, um sie später wieder abmelden zu können.
private java.util.Map<ConfigurationQueryManager.QueryHandler.PublishingMutableCollectionChangeListener,ConfigurationQueryManager.QueryHandler.PublishingMutableCollectionChangeListener> _mutableCollectionChangeHandlers
Map, die die angemeldeten Listener für Änderungen der Elemente von dynamischen Zusammenstellungen speichert, für Key und Value wird das selbe Listener-Objekt verwendet. Allerdings ist die interne Simulationsvariante im Listenerobjekt nicht signifikant für die HashMap.
private java.util.HashMap<ConfigurationQueryManager.QueryHandler.PublishingCommunicationStateListener,ConfigurationQueryManager.QueryHandler.PublishingCommunicationStateListener> _communicationChangedHandlers
private final SrpUserAdministrationReceiver _srpUserAdministrationReceiver
public QueryHandler(SystemObject querySender, short simulationVariant, ConfigSimulationObject simulationObject)
Bearbeitet Konfigurationsanfragen und reicht diese an das Datenmodell weiter und verschickt anschließend die Antwort.
querySender
- Applikation, die die Anfragen gestellt hatsimulationVariant
- Simulationsvariante, mit der die Antworten angemeldet werden. Ist die Simulationsvariante > 0, so muss auch das Objekt simulationObject
übergeben werden.simulationObject
- Objekt, über das zusätzliche Informationen über eine Simulation abgefragt werden können. Dieses Objekt kann auch null
sein, falls der Parameter simulationVariant
kleiner/gleich 0 ist.private void detachListener()
Meldet alle Listener ab, die auf Änderungen bei dynamischen Typen angemeldet waren.
private void detachSelf()
private void handleQuery(ResultData resultData)
public void run()
run
in interface java.lang.Runnable
@Deprecated private void writeSystemObject(Serializer serializer, SystemObject systemObject, long queryId, java.lang.String queryPid) throws java.io.IOException, ConfigurationException
java.io.IOException
ConfigurationException
private java.lang.String generateErrorReply(Serializer serializer, java.lang.Exception exception) throws java.io.IOException
java.io.IOException
private short getInternalSimVariant(short externalSimVariant, MutableCollection mutableCollection)
Ermittelt die Simulationsvariante für interne Anmeldungen auf Änderungen der Elemente von dynamischen Zusammenstellungen.
externalSimVariant
- Von außen vorgegebene Simulationsvariante.mutableCollection
- Dynamische Menge oder dynamischer Typ für den die interne Simulationsvariante ermittelt werden soll.private void serializeObjectList(Serializer serializer, java.util.List<SystemObject> result) throws java.io.IOException
Schreibt eine Liste mit Systemobjekten in eine Serializer. Der Aufbau ist 1) Länge der Liste (int) 2)Referenzen auf die Objekte der Liste
serializer
- Serialisierer, in den die Daten geschrieben werden.result
- Liste, die geschrieben werden soll. Wird null
übergeben, so wird für die Länge der Liste eine 0 geschrieben.java.io.IOException
- Fehler beim schreiben der Datenprivate void handleChangeElementsRequest(Deserializer deserializer, Serializer serializer, ObjectSet set, boolean mutableSet, boolean considerSimulationVariant) throws java.io.IOException, ConfigurationChangeException
Bearbeitet eine Anfrage vom Typ “DynamischeMengeElementeÄndern” oder “KonfigurierendeMengeElementeÄndern”. Dabei wird der Auftrag aus dem Parameter deserializer ausgelesen und in die Antwort in den Paramter serializer geschrieben.
Bei dynamischen Mengen wird die Simulationsvariante berücksichtigt, falls dies gefordert wird.
Bei konfigurierenden Mengen wird die Simulationsvariante niemals berücksichtigt.
deserializer
- Enthält den Auftragserializer
- In dieses Objekt wird die Antwort geschriebenset
- Menge (dynamisch oder konfigurierend)mutableSet
- true = Es handelt sich um eine dynamische MengeconsiderSimulationVariant
- true = Die Simulationsvariante muss berücksichtigt werden (dieser Parameter ist nur für dynamische Mengen wichtig)java.io.IOException
ConfigurationChangeException
private ObjectTimeSpecification deserializeObjectTimeSpecification(Deserializer deserializer) throws java.io.IOException
Ließt aus einem Deserialisierer ein Objekt vom Typ ObjectTimeSpecification aus.
deserializer
- java.io.IOException
private java.util.Collection<ConfigAreaAndVersion> createAreaAndVersion(Deserializer deserializer) throws java.io.IOException
Ließt aus einem Deserializer Konfigurationsbereiche und zugehörige Versionen aus.
deserializer
- s.o.java.io.IOException
private void transferConsistencyCheckResult(ConsistencyCheckResultInterface consistencyCheckResult, Serializer serializer) throws java.io.IOException
Schreibt das Ergebnis einer Konsistenzprüfung in einen Serialisierer.
consistencyCheckResult
- Ergebnis der Prüfungserializer
- In diesen Serialisierer wird das Ergebnis der Prüfung geschriebenjava.io.IOException
private void transferList(java.util.List<ConsistencyCheckResultEntry> errorOrWarning, Serializer serializer) throws java.lang.IllegalArgumentException, java.io.IOException
Schreibt eine Liste, die lokale/Interferenzfehler oder Warnungen enthält in einen Serializer.
errorOrWarning
- Fehler oder Warnungen. Enthält die Liste keine Einträge, wird eine Exception geworfenserializer
- Serializer, in den die Fehler, bzw. Warnungen geschrieben werdenjava.lang.IllegalArgumentException
- Die Liste enthält keine Einträgejava.io.IOException
private DynamicObject createDynamicObject(ConfigConfigurationArea configurationArea, DynamicObjectType type, java.lang.String pid, java.lang.String name, java.util.List<DataAndATGUsageInformation> data, boolean useOldCreateMethod) throws ConfigurationChangeException
Diese Methode erzeugt ein dynamisches Objekt. Dabei wird berücksichtigt, ob es sich um eine Simulation handelt, ist dies der Fall, wird geprüft, ob die Simulation das überhaupt darf.
configurationArea
- Bereich an dem das Objekt angelegt werden solltype
- Typ des neuen Objekts.pid
- Pid des neuen Objektsname
- Name des neuen Objektsdata
- Alle Datensätze, die am neuen Objekt angelegt werden sollen. Es kann eine leere Liste oder null
übergeben werden.useOldCreateMethod
- true
, wenn die alte “Create-Methode” benutzt werden soll. Die alte create-Methode prüft DERZEIT((29.6.2007) das soll später anders sein) nicht, ob alle Datensätze am neuen Objekt vorhanden sind, die vorhanden sein müssen. false
, es wird die neue create-Methode benutzt und somit geprüft, ob alle geforderten Datensätze vorhanden sind. Wurde die Software umgestellt(es muss immer gerpüft werden), kann dieser Parameter sehr wahrscheinlich entfernt werden.ConfigurationChangeException
- Die Konfiguration kann das neue Objekt nicht anlegen (mangelnde Rechte, eine Simuluation darf keine Typen dieser Objekte anlegen, usw.).