de.bsvrz.pat.onlprot.standardProtocolModule
Class StandardProtocoller.XmlProtocoller

java.lang.Object
  extended by de.bsvrz.pat.onlprot.standardProtocolModule.StandardProtocoller.XmlProtocoller
All Implemented Interfaces:
ClientReceiverInterface, ClientProtocollerInterface, ExtendedProtocollerInterface
Enclosing class:
StandardProtocoller

private class StandardProtocoller.XmlProtocoller
extends Object
implements ExtendedProtocollerInterface

Gibt die Telegramme in einem XML-Format aus.


Field Summary
private static String ARGUMENTS_TAG
          Konstante für das Tag für Aufrufparameter
private static String ARRAY_TAG
          Konstante für das Feld-Tag
private static String ASPECT_TAG
          Konstante für das Aspekt-Tag
private static String ATTRIBUTE_TAG
          Konstante für das Attribut-Tag
private static String ATTRIBUTEGROUP_TAG
          Konstante für das Attributgruppen-Tag
private static String BLOCK_TAG
          Konstante für das Block-Tag
private static String BODY_TAG
          Konstante für das Körper-Tag
private static int BUFFER_LENGTH
          Standardlänge eines StringBuffers
private static String DELAYED_TAG
          Konstante für das Nachgeliefert-Tag
private static String DOCTYPE_INFO
          Beschreibt Dokumenttyp
private static String HEAD_TAG
          Konstante für das Kopf-Tag
private static String ID_IS_QUOTES
          Konstante für den ID-Text.
private  int indentLevel
          Einrücktiefe
private  boolean isInBlock
          Zustandskennung; wichtig bei Abbruch der Applikation: Während ein Block von Datentelegrammen geschrieben wird, darf die Applikation nicht abgebrochen werden, da die sonst resultierende XML-Datei fehlerhaft aufgebaut würde (</block> würde fehlen).
private static String LENGTH_IS_QUOTES
          Konstante für den Längen-Text.
private static String LIST_TAG
          Konstante für das Listen-Tag
private static String NAME_IS_QUOTES
          Konstante für den Name-Text.
private static String NO_DATA_TAG
          Konstante für das Tag, welches als Kennung für keine Daten dient
private static String NO_SOURCE_TAG
          Konstante für das Tag, welches als Kennung für keine Quelle dient
private static String OBJECT_TAG
          Konstante für das Objekt-Tag
private static String PID_IS_QUOTES
          Konstante für den PID-Text.
private static String PROTOCOL_TAG
          Konstante für das Protokoll-Tag
private static String RCV_TIME_STAMP_IS_QUOTES
          Konstante für den Empfangszeitstempel-Text.
private static String RECORD_TAG
          Konstante für das Datensatz-Tag
private static String SIM_VARIANT_TAG
          Konstante für das Simulationsvarianten-Tag
private static String START_TIME_STAMP_TAG
          Konstante für das Start-Tag
private static String TIME_STAMP_TAG
          Konstante für das Zeitstempel-Tag
private static String UNIT_IS_QUOTES
          Konstante für den Einheiten-Text.
private static String VALUE_IS
          Konstante für den Wert-Text.
private static String VALUE_IS_QUOTES
          Konstante für den Wert-Text.
private static String XML_VERSION_INFO
          XML-Versions-Info der erzeugten XML-Ausgabe
 
Constructor Summary
StandardProtocoller.XmlProtocoller()
          Erzeugt ein neues Objekt der Klasse XmlProtocoller
 
Method Summary
protected  void closeTag(String tag)
          Schließendes XML-Tag ausgeben.
protected  void openAndCloseTag(String tag)
          XML-Tag schreiben und mit /> abschließen.
protected  void openAndCloseTag(String tag, String value)
          Mit Attribut versehenes XML-Tag schreiben und mit /> abschließen.
protected  void openAndCloseTag(String tag, String value, String comment)
          Mit Attribut und Kommentar versehenes XML-Tag schreiben und mit /> abschließen.
protected  void openAndCloseTag(String tag, String name, String value, String comment)
          Mit besonders benanntem Attribut und Kommentar versehenes XML-Tag schreiben und mit /> abschließen.
protected  void openTag(String tag)
          Öffnendes XML-Tag ausgeben.
protected  void openTag(String tag, String value)
          Mit Attribut versehenes öffnendes XML-Tag ausgeben.
protected  void openTag(String tag, String value, String length)
          Mit Attribut und Länge versehenes öffnendes XML-Tag ausgeben.
protected  void printData(Data data)
          Einen Datensatz ausgeben.
protected  void printDataKind(ResultData telegram)
          Gibt Informationen über die Art der Daten aus.
 void update(ResultData[] results)
          Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird und die erhaltenen Datensätze im XML-Format ausgibt.
 void writeBlock(ResultData[] results, long currentTime)
          Block, bestehend aus mehreren Telegrammen, ausgeben.
protected  void writeComment(String comment)
          Zeichenkette als XML-Kommentar ausgeben.
 void writeFooter()
          Gibt einen Fuß, bestehend aus schließendem BODY_TAG und PROTOCOL_TAG, aus
 void writeHeader(String[] args)
          Gibt einen Kopf aus, der Informationen über die XML-Version und den verwendeten Dokumenttyp ausgibt und den Kopf schreibt
 void writeHeader(String[] args, long startTime)
          Gibt einen Protokollkopf aus.
protected  void writeTag(String tag)
          XML-Tag auf Ausgabe-Stream schreiben
protected  void writeTag(String tag, String value)
          Mit Attribut versehenes XML-Tag auf Ausgabe-Stream schreiben
protected  void writeTag(String tag, String value, String counter)
          Mit Attribut und Zähler versehenes XML-Tag auf Ausgabe-Stream schreiben
protected  void writeTelegram(ResultData telegram)
          Ausgabe eines Datentelegramms.
private  String xmlText(String text)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ARGUMENTS_TAG

private static final String ARGUMENTS_TAG
Konstante für das Tag für Aufrufparameter

See Also:
Constant Field Values

ARRAY_TAG

private static final String ARRAY_TAG
Konstante für das Feld-Tag

See Also:
Constant Field Values

ASPECT_TAG

private static final String ASPECT_TAG
Konstante für das Aspekt-Tag

See Also:
Constant Field Values

ATTRIBUTE_TAG

private static final String ATTRIBUTE_TAG
Konstante für das Attribut-Tag

See Also:
Constant Field Values

ATTRIBUTEGROUP_TAG

private static final String ATTRIBUTEGROUP_TAG
Konstante für das Attributgruppen-Tag

See Also:
Constant Field Values

BLOCK_TAG

private static final String BLOCK_TAG
Konstante für das Block-Tag

See Also:
Constant Field Values

BODY_TAG

private static final String BODY_TAG
Konstante für das Körper-Tag

See Also:
Constant Field Values

BUFFER_LENGTH

private static final int BUFFER_LENGTH
Standardlänge eines StringBuffers

See Also:
Constant Field Values

DELAYED_TAG

private static final String DELAYED_TAG
Konstante für das Nachgeliefert-Tag

See Also:
Constant Field Values

DOCTYPE_INFO

private static final String DOCTYPE_INFO
Beschreibt Dokumenttyp

See Also:
Constant Field Values

HEAD_TAG

private static final String HEAD_TAG
Konstante für das Kopf-Tag

See Also:
Constant Field Values

ID_IS_QUOTES

private static final String ID_IS_QUOTES
Konstante für den ID-Text.

See Also:
Constant Field Values

LENGTH_IS_QUOTES

private static final String LENGTH_IS_QUOTES
Konstante für den Längen-Text.

See Also:
Constant Field Values

LIST_TAG

private static final String LIST_TAG
Konstante für das Listen-Tag

See Also:
Constant Field Values

NAME_IS_QUOTES

private static final String NAME_IS_QUOTES
Konstante für den Name-Text.

See Also:
Constant Field Values

NO_DATA_TAG

private static final String NO_DATA_TAG
Konstante für das Tag, welches als Kennung für keine Daten dient

See Also:
Constant Field Values

NO_SOURCE_TAG

private static final String NO_SOURCE_TAG
Konstante für das Tag, welches als Kennung für keine Quelle dient

See Also:
Constant Field Values

OBJECT_TAG

private static final String OBJECT_TAG
Konstante für das Objekt-Tag

See Also:
Constant Field Values

PID_IS_QUOTES

private static final String PID_IS_QUOTES
Konstante für den PID-Text.

See Also:
Constant Field Values

PROTOCOL_TAG

private static final String PROTOCOL_TAG
Konstante für das Protokoll-Tag

See Also:
Constant Field Values

RCV_TIME_STAMP_IS_QUOTES

private static final String RCV_TIME_STAMP_IS_QUOTES
Konstante für den Empfangszeitstempel-Text.

See Also:
Constant Field Values

RECORD_TAG

private static final String RECORD_TAG
Konstante für das Datensatz-Tag

See Also:
Constant Field Values

SIM_VARIANT_TAG

private static final String SIM_VARIANT_TAG
Konstante für das Simulationsvarianten-Tag

See Also:
Constant Field Values

START_TIME_STAMP_TAG

private static final String START_TIME_STAMP_TAG
Konstante für das Start-Tag

See Also:
Constant Field Values

TIME_STAMP_TAG

private static final String TIME_STAMP_TAG
Konstante für das Zeitstempel-Tag

See Also:
Constant Field Values

UNIT_IS_QUOTES

private static final String UNIT_IS_QUOTES
Konstante für den Einheiten-Text.

See Also:
Constant Field Values

VALUE_IS

private static final String VALUE_IS
Konstante für den Wert-Text.

See Also:
Constant Field Values

VALUE_IS_QUOTES

private static final String VALUE_IS_QUOTES
Konstante für den Wert-Text.

See Also:
Constant Field Values

XML_VERSION_INFO

private static final String XML_VERSION_INFO
XML-Versions-Info der erzeugten XML-Ausgabe

See Also:
Constant Field Values

indentLevel

private int indentLevel
Einrücktiefe


isInBlock

private boolean isInBlock
Zustandskennung; wichtig bei Abbruch der Applikation: Während ein Block von Datentelegrammen geschrieben wird, darf die Applikation nicht abgebrochen werden, da die sonst resultierende XML-Datei fehlerhaft aufgebaut würde (</block> würde fehlen).

Constructor Detail

StandardProtocoller.XmlProtocoller

public StandardProtocoller.XmlProtocoller()
Erzeugt ein neues Objekt der Klasse XmlProtocoller

Method Detail

update

public void update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird und die erhaltenen Datensätze im XML-Format ausgibt.

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

writeFooter

public void writeFooter()
Gibt einen Fuß, bestehend aus schließendem BODY_TAG und PROTOCOL_TAG, aus

Specified by:
writeFooter in interface ClientProtocollerInterface

writeHeader

public void writeHeader(String[] args,
                        long startTime)
Description copied from interface: ExtendedProtocollerInterface
Gibt einen Protokollkopf aus. Die evtl. im Kopf ausgegebene Startzeit kann durch einen entsprechenden Parameter vorgegben werden.

Specified by:
writeHeader in interface ExtendedProtocollerInterface
Parameters:
args - Kommandozeilenargumente, die evtl. im Kopf des Protokolls ausgegeben werden.
startTime - Startzeit in Millisekunden seit 1970, die evtl. im Kopf des Protokoll ausgegeben wird.

writeHeader

public void writeHeader(String[] args)
Gibt einen Kopf aus, der Informationen über die XML-Version und den verwendeten Dokumenttyp ausgibt und den Kopf schreibt

Specified by:
writeHeader in interface ClientProtocollerInterface
Parameters:
args - String[] mit den Kommandozeilenparametern

closeTag

protected void closeTag(String tag)
Schließendes XML-Tag ausgeben. Die übergebene Bezeichnung wird mit spitzen Klammern umgeben.

Parameters:
tag - String, der Bezeichnung des Tags enthält

openAndCloseTag

protected void openAndCloseTag(String tag)
XML-Tag schreiben und mit /> abschließen.

Parameters:
tag - String, der Bezeichnung des Tags enthält

openAndCloseTag

protected void openAndCloseTag(String tag,
                               String value)
Mit Attribut versehenes XML-Tag schreiben und mit /> abschließen.

Parameters:
tag - String, der Bezeichnung des Tags enthält
value - String mit Wert des Attributs

openAndCloseTag

protected void openAndCloseTag(String tag,
                               String value,
                               String comment)
Mit Attribut und Kommentar versehenes XML-Tag schreiben und mit /> abschließen.

Parameters:
tag - String, der Bezeichnung des Tags enthält
value - String mit Wert des Attributs
comment - String mit dem Kommentar, der hinter dem Tag ausgegeben wird

openAndCloseTag

protected void openAndCloseTag(String tag,
                               String name,
                               String value,
                               String comment)
Mit besonders benanntem Attribut und Kommentar versehenes XML-Tag schreiben und mit /> abschließen.

Parameters:
tag - String, der Bezeichnung des Tags enthält
name - String mit Name des Attributs
value - String mit Wert des Attributs
comment - String mit dem Kommentar, der hinter dem Tag ausgegeben wird

openTag

protected void openTag(String tag)
Öffnendes XML-Tag ausgeben. Die übergebene Bezeichnung wird mit spitzen Klammern umgeben.

Parameters:
tag - String, der Bezeichnung des Tags enthält

openTag

protected void openTag(String tag,
                       String value)
Mit Attribut versehenes öffnendes XML-Tag ausgeben.

Parameters:
tag - String, der Bezeichnung des Tags enthält
value - String mit Wert des Attributs

openTag

protected void openTag(String tag,
                       String value,
                       String length)
Mit Attribut und Länge versehenes öffnendes XML-Tag ausgeben.

Parameters:
tag - String, der Bezeichnung des Tags enthält
value - String mit Wert des Attributs
length - String mit einer Längeninformation, der hinter dem Tag ausgegeben wird

printData

protected void printData(Data data)
Einen Datensatz ausgeben. Grundsätzlich wird unterschieden zwischen "einfachen" Daten (Eigenschaft isPlain) und im Gegensatz dazu Feldern und Listen. Zur Ausgabe der letzteren beiden ruft sich diese Methode rekursiv wieder auf.

Parameters:
data - Data mit dem Telegramm

printDataKind

protected void printDataKind(ResultData telegram)
Gibt Informationen über die Art der Daten aus. Dies sind im einzelnen Informationen über

Parameters:
telegram - ResultData mit dem Datentelegramm

xmlText

private String xmlText(String text)

writeBlock

public void writeBlock(ResultData[] results,
                       long currentTime)
Block, bestehend aus mehreren Telegrammen, ausgeben.

Specified by:
writeBlock in interface ExtendedProtocollerInterface
Parameters:
results - ResultData[] mit den empfangenen Ergebnisdatensätzen
currentTime - long mit der aktuellen Uhrzeit. Der Block wird in der Ausgabe damit versehen.

writeComment

protected void writeComment(String comment)
Zeichenkette als XML-Kommentar ausgeben. Der XML-Kommentar wird durch ein Tabulatorzeichen eingeleitet.

Parameters:
comment - String mit dem Kommentar

writeTag

protected void writeTag(String tag)
XML-Tag auf Ausgabe-Stream schreiben

Parameters:
tag - String, der zwischen spitzen Klammern auszugeben ist

writeTag

protected void writeTag(String tag,
                        String value)
Mit Attribut versehenes XML-Tag auf Ausgabe-Stream schreiben

Parameters:
tag - String, der zwischen spitzen Klammern auszugeben ist
value - String mit Wert des Attributs

writeTag

protected void writeTag(String tag,
                        String value,
                        String counter)
Mit Attribut und Zähler versehenes XML-Tag auf Ausgabe-Stream schreiben

Parameters:
tag - String, der zwischen spitzen Klammern auszugeben ist
value - String mit Wert des Attributs
counter - String mit dem Zählerwert

writeTelegram

protected void writeTelegram(ResultData telegram)
Ausgabe eines Datentelegramms. Ein Telegramm besteht aus Informationen über die Art der Daten und über die eigentlichen Daten selbst.

Parameters:
telegram - ResultData mit dem Datentelegramm