Class ParameterAnfrageBeantworter

  • All Implemented Interfaces:
    de.bsvrz.dav.daf.main.ClientSenderInterface, java.lang.Runnable
    Direct Known Subclasses:
    ControlAnfrageBeantworter

    public abstract class ParameterAnfrageBeantworter
    extends java.lang.Thread
    implements de.bsvrz.dav.daf.main.ClientSenderInterface
    Abstrakte Basisklasse zur Repräsentation eines Beantworters auf eine Anfrage, die die Parametrierung über die Parametrierungsschnittstelle erhalten hat (atg.parameterSchnittstelle). Für eine Anfrage wird ein Thread gestartet, der die gesuchten Informationen ermittelt und diese als Sender an die anfragende Applikation übermittelt.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
      • Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface

        START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ParameterAnfrageBeantworter​(Parametrierung parametrierung, de.bsvrz.dav.daf.main.config.SystemObject anfrager, int index)
      Konstruktor.
      Die Funktion erzeugt einen Anfragebeantworter der eine Anfrage mit Hilfe des übergebenen Parametrierungsmodul bearbeitet.
    • Method Summary

      Modifier and Type Method Description
      void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)  
      protected abstract java.io.Serializable ermittleAntwort()
      die Funktion ermittelt aus den übergebenen Daten eine Antwort, die später an den Anfrager als Attribut im Datensatz "atg.parametrierungSchnittstelle" zurückgesendet wird.
      static ParameterAnfrageBeantworter erzeugeBeantworter​(Parametrierung parametrierung, de.bsvrz.dav.daf.main.Data daten)
      Factory zum Erstellen eines konkreten Anfragebeantworters in Abhängigkeit vom empfangenen Anfragetyp.
      Unterstützt werden Anfragen mit folgenden Typen: KonfigurierbareObjekteErmittler: zum Ermitteln der Objekte, die durch Setzen des übergebenen Parameterdatensatzes potentiell mit Parametern versorgt werden.
      protected abstract de.bsvrz.puk.param.lib.ParametrierungsAnfrageTyp getAntwortTyp()
      liefert den Typ der Antwort auf die entsprechende Anfrage.
      protected int getIndex()
      liefert den Index der Anfrage.
      protected Parametrierung getParametrierung()
      liefert die Parametrierung, die die Anfrage erhalten hat.
      boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)  
      void run()  
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ParameterAnfrageBeantworter

        protected ParameterAnfrageBeantworter​(Parametrierung parametrierung,
                                              de.bsvrz.dav.daf.main.config.SystemObject anfrager,
                                              int index)
        Konstruktor.
        Die Funktion erzeugt einen Anfragebeantworter der eine Anfrage mit Hilfe des übergebenen Parametrierungsmodul bearbeitet. Das übergebene Anfrageobjekt muss ein Objekt vom Typ "typ.applikation" sein, da über dessen Attributgruppe "atg.paremetrierungSchnittstelle" das Ergebnis übermittelt wird. Der Index wird im Ergebnis zurückgeliefert.
        Parameters:
        parametrierung - die Parametrierung, die die Anfrage erhalten hat.
        anfrager - das anfragende Applikationsobjekt
        index - der Index der Anfrage
    • Method Detail

      • erzeugeBeantworter

        public static ParameterAnfrageBeantworter erzeugeBeantworter​(Parametrierung parametrierung,
                                                                     de.bsvrz.dav.daf.main.Data daten)
        Factory zum Erstellen eines konkreten Anfragebeantworters in Abhängigkeit vom empfangenen Anfragetyp.
        Unterstützt werden Anfragen mit folgenden Typen:
        1. KonfigurierbareObjekteErmittler: zum Ermitteln der Objekte, die durch Setzen des übergebenen Parameterdatensatzes potentiell mit Parametern versorgt werden. Das ist nur sinnvoll für Objekte, die eine Hierarchie beschreiben oder Typ-Objekte.
        2. ParameterLesenErmittler: zum Ermitteln der konkreten Parameter für die übergebene Spezifikation. über diese Anfrage können auch die Parameter ermittelt werden, die an Typ-Objekten bzw. Hierarchieobjekten für die versorgten untergeordneten Objekte gelten.
        3. ParameterSchreibenErmittler: zum Schreiben der Parameter für die übergebene Spezifikation.
        4. SucheWurzelErmittler: zum Ermitteln der Basisobjektes, aus dem die Parameter für eine übergebene Parameterspezifikation stammen.
        Wird ein nicht unterstützter Anfragetyp übermittelt, wirft die Funktion eine IllegalArgumentException.
        Parameters:
        parametrierung - die Parametrierung, die die Anfrage erhalten hat
        daten - die Daten die mit der Anfrage empfangen wurden
        Returns:
        der erzeugte Beantworter
      • dataRequest

        public void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject object,
                                de.bsvrz.dav.daf.main.DataDescription dataDescription,
                                byte state)
        Specified by:
        dataRequest in interface de.bsvrz.dav.daf.main.ClientSenderInterface
      • ermittleAntwort

        protected abstract java.io.Serializable ermittleAntwort()
        die Funktion ermittelt aus den übergebenen Daten eine Antwort, die später an den Anfrager als Attribut im Datensatz "atg.parametrierungSchnittstelle" zurückgesendet wird.
        Returns:
        die Antwort als serialisierbares Objekt
      • getAntwortTyp

        protected abstract de.bsvrz.puk.param.lib.ParametrierungsAnfrageTyp getAntwortTyp()
        liefert den Typ der Antwort auf die entsprechende Anfrage. Der Typ der Antwort hängt vom Typ der Anfrage ab, ist aber durch den gleichen Zustand definiert, da Anfrage und Antwort mit der gleichen Attributgruppe versendet werden.
        Returns:
        den Antworttyp
      • getIndex

        protected int getIndex()
        liefert den Index der Anfrage.
        Returns:
        den Index
      • getParametrierung

        protected Parametrierung getParametrierung()
        liefert die Parametrierung, die die Anfrage erhalten hat.
        Returns:
        parametrierung die Parametrierung
      • isRequestSupported

        public boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject object,
                                          de.bsvrz.dav.daf.main.DataDescription dataDescription)
        Specified by:
        isRequestSupported in interface de.bsvrz.dav.daf.main.ClientSenderInterface
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread