de.bsvrz.puk.config.main.communication.query
Class ConfigurationQueryManager

java.lang.Object
  extended by de.bsvrz.puk.config.main.communication.query.ConfigurationQueryManager

public class ConfigurationQueryManager
extends Object

Diese Klasse nimmt Konfigurationsanfragen entgegen und leitet sie entsprechend an die Konfiguration weiter. Muss die Konfiguration eine Antwort auf die Anfrage verschicken, wird dies ebenfalls durch dieses Objekt realisiert.

Author:
Kappich Systemberatung

Nested Class Summary
private  class ConfigurationQueryManager.InvalidationListenerForTyps
           
private  class ConfigurationQueryManager.NameChangedListenerForTyps
           
private  class ConfigurationQueryManager.ObjectCreatedListenerForTyps
           
private  class ConfigurationQueryManager.QueryHandler
           
private  class ConfigurationQueryManager.QueryReceiver
           
private static class ConfigurationQueryManager.ReceiverSubscriptionSimulation
           
private  class ConfigurationQueryManager.SimulationListener
          Listener, der aufgerufen wird, sobald sich die dynamische Menge mit Simulationen ändert.
 
Field Summary
private  Authentication _authentication
           
private  ClientDavInterface _connection
           
private  DataDescription _dataDescriptionArea
          Aufträge für die Konfiguration, Konfigurationsbereiche
private  DataDescription _dataDescriptionRead
          Aufträge für die Konfiguration, lesen
private  DataDescription _dataDescriptionUser
          Aufträge für die Konfiguration, Benutzerverwaltung
private  DataDescription _dataDescriptionWrite
          Aufträge für die Konfiguration, schreibend
private static Debug _debug
           
private  ForeignObjectManager _foreignObjectManager
           
private  ConfigurationAuthority _localAuthority
           
private  DataModel _localConfiguration
           
private  Map<SystemObject,ConfigurationQueryManager.QueryHandler> _querySender2queryHandlerMap
           
private  ConfigurationQueryManager.SimulationListener _simulationListener
          Listener, der Änderungen auf der Menge der Simulationen überwacht
private  Map<SystemObject,ConfigSimulationObject> _simulationObjects
          Speichert zu einem SystemObjekt, das eine Simulation darstellt, ein Java Objekt, das eine Simulation aus Sicht der Konfiguration, darstellt.
private  Map<Short,ConfigurationQueryManager.ReceiverSubscriptionSimulation> _simulationReadSubscriptions
          Enthält alle Anmeldungen der Konfiguration als Senke auf lesende Konfigurationsanfragen unter Berücksichtigung der Simulationsvariante.
private  HashMap<Short,ConfigSimulationObject> _simulations
          Map zum Zugriff auf die Simulationsobjekte über die Simulationsvariante
private  Map<Short,ConfigurationQueryManager.ReceiverSubscriptionSimulation> _simulationWriteSubscriptions
          Enthält alle Anmeldungen der Konfiguration als Senke auf schreibende Konfigurationsanfragen unter Berücksichtigung der Simulationsvariante.
 
Constructor Summary
ConfigurationQueryManager(ClientDavInterface connection, DataModel localConfiguration, ConfigurationAuthority localAuthority, Authentication authentication)
           
 
Method Summary
private  ConfigSimulationObject createNewSimulationObject(SystemObject systemObject)
          Erzeugt ein Simulationsobjekt ConfigSimulationObject aus einem SystemObjekt.
private  void detachHandler(SystemObject querySender)
           
private static DataDescription getDataDescription(DataModel configuration, String atgPid, String aspPid)
          Hilfsfunktion, die zu den übergebenen PIDs von einer Attributgruppe und eines Aspekts eine DataDescription erstellt.
 ForeignObjectManager getForeignObjectManager()
           
 void start()
           
 void subscribeReadRequestForSimulation(short simulationVariant, ConfigSimulationObject simulationObject)
          Diese Methode meldet für eine Simulationsvariante einen Empfänger für lesende Konfigurationsanfragen an, falls dies nicht bereits geschehen ist.
 void subscribeWriteRequestForSimulation(short simulationVariant, ConfigSimulationObject simulationObject)
          Diese Methode meldet für eine Simulationsvariante einen Empfänger für Konfigurationsschreibanfragenanfragen an, falls dies nicht bereits geschehen ist.
 void unsubscribeReadRequestForSimulation(short simulationVariant)
          Meldet für eine Simulationsvariante die Anmeldung als Empfänger für Konfigurationsschreibanfragen ab.
 void unsubscribeWriteRequestForSimulation(short simulationVariant)
          Meldet für eine Simulationsvariante die Anmeldung als Empfänger für Konfigurationsschreibanfragen ab.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug

_connection

private ClientDavInterface _connection

_localConfiguration

private final DataModel _localConfiguration

_localAuthority

private final ConfigurationAuthority _localAuthority

_authentication

private final Authentication _authentication

_querySender2queryHandlerMap

private final Map<SystemObject,ConfigurationQueryManager.QueryHandler> _querySender2queryHandlerMap

_simulationObjects

private final Map<SystemObject,ConfigSimulationObject> _simulationObjects
Speichert zu einem SystemObjekt, das eine Simulation darstellt, ein Java Objekt, das eine Simulation aus Sicht der Konfiguration, darstellt.

Als Schlüssel dient eine Simulation aus der dynamischen Menge der Simulationen. Der value ist das entsprechende JavaObjekt, das die Simulation aus Sicht der Konfiguration darstellt.


_simulations

private HashMap<Short,ConfigSimulationObject> _simulations
Map zum Zugriff auf die Simulationsobjekte über die Simulationsvariante


_simulationReadSubscriptions

private final Map<Short,ConfigurationQueryManager.ReceiverSubscriptionSimulation> _simulationReadSubscriptions
Enthält alle Anmeldungen der Konfiguration als Senke auf lesende Konfigurationsanfragen unter Berücksichtigung der Simulationsvariante.


_simulationWriteSubscriptions

private final Map<Short,ConfigurationQueryManager.ReceiverSubscriptionSimulation> _simulationWriteSubscriptions
Enthält alle Anmeldungen der Konfiguration als Senke auf schreibende Konfigurationsanfragen unter Berücksichtigung der Simulationsvariante.


_dataDescriptionWrite

private DataDescription _dataDescriptionWrite
Aufträge für die Konfiguration, schreibend


_dataDescriptionRead

private DataDescription _dataDescriptionRead
Aufträge für die Konfiguration, lesen


_dataDescriptionUser

private DataDescription _dataDescriptionUser
Aufträge für die Konfiguration, Benutzerverwaltung


_dataDescriptionArea

private DataDescription _dataDescriptionArea
Aufträge für die Konfiguration, Konfigurationsbereiche


_simulationListener

private ConfigurationQueryManager.SimulationListener _simulationListener
Listener, der Änderungen auf der Menge der Simulationen überwacht


_foreignObjectManager

private ForeignObjectManager _foreignObjectManager
Constructor Detail

ConfigurationQueryManager

public ConfigurationQueryManager(ClientDavInterface connection,
                                 DataModel localConfiguration,
                                 ConfigurationAuthority localAuthority,
                                 Authentication authentication)
Method Detail

getDataDescription

private static DataDescription getDataDescription(DataModel configuration,
                                                  String atgPid,
                                                  String aspPid)
Hilfsfunktion, die zu den übergebenen PIDs von einer Attributgruppe und eines Aspekts eine DataDescription erstellt.

Parameters:
configuration - Datenmodell mit dessen Hilfe die Objekte zu den PIDs ermittelt werden
atgPid - Pid der gewünschten Attributgruppe
aspPid - Pid des gewünschten Aspekts
Returns:
DataDescription-Objekt, dass mit der gewünschten Attributgruppe und dem gewünschten Aspekt initialisiert ist.
Throws:
IllegalStateException - mit entsprechender Fehlermeldung, falls eine der beiden PIDs nicht aufgelöst werden konnte.

getForeignObjectManager

public ForeignObjectManager getForeignObjectManager()

start

public void start()

detachHandler

private void detachHandler(SystemObject querySender)

subscribeReadRequestForSimulation

public void subscribeReadRequestForSimulation(short simulationVariant,
                                              ConfigSimulationObject simulationObject)
Diese Methode meldet für eine Simulationsvariante einen Empfänger für lesende Konfigurationsanfragen an, falls dies nicht bereits geschehen ist.

Parameters:
simulationVariant - Simulationsvariante, mit der sich Konfiguration auf Anfragen anmeldet

subscribeWriteRequestForSimulation

public void subscribeWriteRequestForSimulation(short simulationVariant,
                                               ConfigSimulationObject simulationObject)
Diese Methode meldet für eine Simulationsvariante einen Empfänger für Konfigurationsschreibanfragenanfragen an, falls dies nicht bereits geschehen ist.

Parameters:
simulationVariant - Simulationsvariante, mit der sich Konfiguration auf Anfragen anmeldet

unsubscribeWriteRequestForSimulation

public void unsubscribeWriteRequestForSimulation(short simulationVariant)
Meldet für eine Simulationsvariante die Anmeldung als Empfänger für Konfigurationsschreibanfragen ab. Es ist dann unmöglich für diese Simulation weiter Anfragen zu stellen, die schreibend auf die Konfiguration zugreifen wollen. Die Methode kann mehrfach aufgerufen werden, de Verbindung wird nur dann abgebaut, wenn sie auch existiert.

Parameters:
simulationVariant - Simulationsvariante, für die es nicht mehr möglich sein soll Schreibanfragen zu stellen.

unsubscribeReadRequestForSimulation

public void unsubscribeReadRequestForSimulation(short simulationVariant)
Meldet für eine Simulationsvariante die Anmeldung als Empfänger für Konfigurationsschreibanfragen ab. Es ist dann unmöglich für diese Simulation weiter Anfragen zu stellen, die schreibend auf die Konfiguration zugreifen wollen. Die Methode kann mehrfach aufgerufen werden, de Verbindung wird nur dann abgebaut, wenn sie auch existiert.

Parameters:
simulationVariant - Simulationsvariante, für die es nicht mehr möglich sein soll Schreibanfragen zu stellen.

createNewSimulationObject

private ConfigSimulationObject createNewSimulationObject(SystemObject systemObject)
                                                  throws OneSubscriptionPerSendData
Erzeugt ein Simulationsobjekt ConfigSimulationObject aus einem SystemObjekt.

Dabei wird der Typ(online/offline), die Simulationsvariante und die speziell zu behandelnden Mengen der Simulation ausgelesen.

Parameters:
systemObject - Objekt, das vom Typ typ.simulation sein muss (oder diese Eigenschaften erbt).
Throws:
OneSubscriptionPerSendData