de.kappich.puk.param.main
Class ParamApp

java.lang.Object
  extended by de.kappich.puk.param.main.ParamApp
All Implemented Interfaces:
ClientReceiverInterface, ClientSenderInterface

public class ParamApp
extends Object
implements ClientSenderInterface, ClientReceiverInterface

Diese Klasse implementiert die Parametrierung, die sich über Aufrufargumente gesteuert auf beliebige Vorgabe-Parameter-Daten des Systems anmelden kann, und diese als Soll-Parameter publiziert.

Datenfluss:

Ein zu verwendender Paramtersatz wird (i.d.R. durch die Bedienung) als Vorgabe-Parameter versandt und von der Paramterierung (die darauf als Senke angemeldet ist) als Soll-Paramter publiziert. Der Soll-Parameter wird von den zu parametrierenden Applikationen verwendet. Eine solche Applikation hat zudem die Möglichkeit (wird i.d.R. aber nicht verwendet) den von ihr tatsächlichen benutzten Paramtersatz als Ist-Parameter zu publizieren.

Bespiel: Bedienung setzt Vorgabe-Parameter für Erfassungszyklus auf Wert 1,1 Minuten. Parameterierung publiziert dies an alle angemeldeten Applikationen als Soll-Parameter. Die TLS-Applikation (als ein Abnehmer) sendet diesen Wert an die Streckenstation. Da dort keine 1,1 Minuten eingestellt werden können, meldet die Streckenstation als eingestellten Wert 1 Minute zurück. Die TLS-Applikation publiziert daraufhin als Ist-Paramter den Wert 1-Minute. In der Bedienung könnte z.B. über eine Gegenüberstellung von Vorgabe-, Soll- und Ist-Parameter auf diese Abweichung hingewiesen werden.

Aufruf:

 java de.kappich.puk.param.main.ParamApp -parameterPfad=ParameterPfad -parametrierung=Pid
 
mit:
 ParameterPfad: Pfadangabe, in der die Parameterdaten persistent gehalten
 werden.
                Default: "./parameter".
                Der spezifizierte Zielordner muss existieren!
 

Pid: PID des Parametrierungsobjekts (typ.parametrierung) an dem die Parameter für diese Parametrierung verwaltet werden. Default: parametrierung.global Die Beschreibung der Parameterattributgruppe siehe DatKat, atg.parametrierung.

Author:
Kappich Systemberatung

Nested Class Summary
private static class ParamApp.UncaughtExceptionHandler
          Implementierung eines UncaughtExceptionHandlers, der bei nicht abgefangenen Exceptions und Errors entsprechende Ausgaben macht und im Falle eines Errors den Prozess terminiert.
 
Field Summary
private  DataModel _config
          Zugriff auf die aktuelle Konfiguration.
private static ClientDavInterface _connection
          Das Verbindungsobjekt zum Datenverteiler.
private static Debug _debug
          Aktueller DebugLogger.
private  Aspect _inputAspect
          Der Aspekt, mit dem die Parametersätze von der Parametrierung empfangen werden.
private  Aspect _outputAspect
          Der Aspekt, mit dem die Parametersätze durch die Parametrierung publiziert werden.
private  Hashtable _paramObjects
          Tabelle mit den aktuell verwalteten PersistenceHandlern.
private static File _paramPath
          Verzeichnispfad, in dem die Parametersätze persistent gespeichert werden.
private  PersistanceHandlerManager _persistanceHandlerManager
          ManagerObjekt, der die PersistenceHandler für die Paramtersätze verwaltet.
private static String _pidParametrierung
          Pid des Parametrierungsobjekts mit den Parametern, über die sich die Parametrierung parametrieren läßt.
(package private) static String ASP_INPUT
          Die Pid des Aspekts, mit dem Parameter (z.B.
(package private) static String ASP_OUTPUT
          Die Pid des Aspekts, mit dem die durch die Parametrierung verwalteten Parameter von der Parametrierung publiziert werden, nachdem sie (z.B.
 
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
ParamApp()
          Konstruiert ein ParamApp Objekt.
 
Method Summary
 void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
          Sendesteuerung des Datenverteilers an die Applikation.
 boolean isRequestSupported(SystemObject object, DataDescription dataDescription)
          Liefert false zurück, um den Datenverteiler-Applikationsfunktionenen zu signalisieren, dass keine Sendesteuerung gewünscht wird.
static void main(String[] arguments)
          Main-Methode mit Auswertung der Aufrufparamter Anmeldung an den Datenverteiler Erzeugen ein ParamApp
 void update(ResultData[] results)
          Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ASP_INPUT

static final String ASP_INPUT
Die Pid des Aspekts, mit dem Parameter (z.B. durch die Bedienung) vorgegeben werden. Dieser Aspekt wird von der Parametrierung empfangen und dann mit dem Aspekt ASP_OUTPUT publiziert werden.

See Also:
Constant Field Values

ASP_OUTPUT

static final String ASP_OUTPUT
Die Pid des Aspekts, mit dem die durch die Parametrierung verwalteten Parameter von der Parametrierung publiziert werden, nachdem sie (z.B. durch die Bedienung) vorgegeben wurden (siehe auch ASP_INPUT .

See Also:
Constant Field Values

_persistanceHandlerManager

private PersistanceHandlerManager _persistanceHandlerManager
ManagerObjekt, der die PersistenceHandler für die Paramtersätze verwaltet.


_paramObjects

private Hashtable _paramObjects
Tabelle mit den aktuell verwalteten PersistenceHandlern. Als Schlüssel dient die DatenIdentifikation (DataIdentification). Damit kann auf die persistenten Parametersätze für eine DatanIdentifikation zugegriffen werden (PersistanceHandlerManager ).


_paramPath

private static File _paramPath
Verzeichnispfad, in dem die Parametersätze persistent gespeichert werden. Das Verzeichnis wird als Aufrufparameter übergeben und muss bereits existieren.


_pidParametrierung

private static String _pidParametrierung
Pid des Parametrierungsobjekts mit den Parametern, über die sich die Parametrierung parametrieren läßt.


_connection

private static ClientDavInterface _connection
Das Verbindungsobjekt zum Datenverteiler.


_outputAspect

private Aspect _outputAspect
Der Aspekt, mit dem die Parametersätze durch die Parametrierung publiziert werden.


_inputAspect

private Aspect _inputAspect
Der Aspekt, mit dem die Parametersätze von der Parametrierung empfangen werden.


_config

private DataModel _config
Zugriff auf die aktuelle Konfiguration.


_debug

private static Debug _debug
Aktueller DebugLogger.

Constructor Detail

ParamApp

public ParamApp()
Konstruiert ein ParamApp Objekt. Bei der Konstruktion werden folgende Schritte durchgeführt:

Damit empfängt die Parametrierung als erstes "ihren" Parametersatz und wertet ihn aus, wodurch dann alle zu parametrierenden Datensätze angemeldet, eventuell vorhande persistente Daten versandt und geänderte Vorgaben verarbeitet werden (d.h. die Parameterierung zieht sich so beim Start selbst aus dem Sumpf.

Method Detail

dataRequest

public void dataRequest(SystemObject object,
                        DataDescription dataDescription,
                        byte state)
Sendesteuerung des Datenverteilers an die Applikation. Diese Methode muss von der Applikation implementiert werden, um den Versand von Daten zu starten bzw. anzuhalten. Der Datenverteiler signalisiert damit einer Quelle oder einem Sender dass mindestens ein Abnehmer bzw. kein Abnehmer mehr für die zuvor angemeldeten Daten vorhanden ist. Die Quelle wird damit aufgefordert den Versand von Daten zu starten bzw. zu stoppen.

Specified by:
dataRequest in interface ClientSenderInterface
Parameters:
object - Das in der zugehörigen Sendeanmeldung angegebene Objekt, auf das sich die Sendesteuerung bezieht.
dataDescription - Beschreibende Informationen zu den angemeldeten Daten auf die sich die Sendesteuerung bezieht.
state - Status der Sendesteuerung. Kann einen der Werte START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION enthalten.
See Also:
ClientSenderInterface.START_SENDING, ClientSenderInterface.STOP_SENDING, ClientSenderInterface.STOP_SENDING_NO_RIGHTS, ClientSenderInterface.STOP_SENDING_NOT_A_VALID_SUBSCRIPTION

isRequestSupported

public boolean isRequestSupported(SystemObject object,
                                  DataDescription dataDescription)
Liefert false zurück, um den Datenverteiler-Applikationsfunktionenen zu signalisieren, dass keine Sendesteuerung gewünscht wird.

Specified by:
isRequestSupported in interface ClientSenderInterface
Parameters:
object - Wird ignoriert.
dataDescription - Wird ignoriert.
Returns:
false.

update

public void update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.

Specified by:
update in interface ClientReceiverInterface
Parameters:
results - Feld mit den empfangenen Ergebnisdatensätzen.

main

public static void main(String[] arguments)
Main-Methode mit

Parameters:
arguments - Die Aufrufparameter der Applikation