ChainPreParser

Gruppe

Preparser

Funktion

Ein Preparser, mit dem man mehrere Preparser verketten (hintereinander ausführen) kann.

Konfigurationsdatei

ChainPreParser.properties

Beschreibung


Der ChainPreParser erlaubt die Verkettung mehrerer Preparser. So kann man z. B. erst mit dem GzipDecoderPreParser die Daten entpacken, dann mit dem EncodingPatcher ungültige Steuerzeichen entfernen und anschließend mit dem QuotationRemover umschließende Anführungszeichen jeder Zeile entfernen. Es bleibt hier dem Anwender überlassen eine sinnvolle Verkettung zusammenzustellen.

Der ChainPreParser erwartet eine Properties-Datei, die für jede Preparser-Position in der Kette einen Eintrag folgender Form enthält.


ChainPosition.<N>=<vollständiger Klassenname><Zusatzparameter>

Getrennte Angabe von Klasse und Zusatzparameter.

ChainPosition.<N>=./conf/<subdir>/<PPP-Dateiname>.ppp

Konfigurationsdatei der ChainPosition im PPP-Format.

Die Nummer N der ChainPosition kann von 0 bis 9 gehen. ChainPosition.0 muss vorhanden sein, sonst wird mit Fehler abgebrochen. Nummern über 9 werden ignoriert. Alle ChainPosition-Einträge werden in aufsteigender Reihenfolge abgearbeitet. Die Reihenfolge kann Lücken haben.

Der Trenner zwischen vollständigem Klassenname und Zusatzparameter kann Leerzeichen, Tabulator, Doppelpunkt, Semikolon oder Komma sein. Wenn im Zusatzparameter Leerzeichen enthalten sind, müssen sie durch \ entwertet werden (sollte man aber vermeiden). Der Zusatzparameter kann entfallen, wenn der entsprechende Preparser keine Zusatzkonfiguration erwartet. Der Zusatzparameter kann ein literaler Wert sein (wie im Beispiel unten beim EncodingPatcher) oder der Pfad zu einer Konfigurationsdatei.

Die PPP-Datei muss unterhalb des Verzeichnisses ./conf/ liegen und muss die Endung .ppp haben. Sie ist eine Properties-Datei, die am Anfang den Klassennamen der aufzurufenden Preparserklasse als Property preparser.class.name enthält und danach die Properties zur Konfiguration dieses Preparsers.

Konfigurationsregeln des ChainPreParsers


  1. Im Profil wird als Zusatzparameter zum ChainPreParser der relative oder absolute Pfadname einer Konfigurationsdatei erwartet.

  2. Falls die Datei entsprechend 1) nicht gefunden wird, wird die Datei ./conf/ChainPreParser.properties als Konfigurationsdatei verwendet.

  3. Falls durch 1) oder 2) keine gültige Konfiguration gefunden wird oder darin kein Property ChainPosition.0 existiert, wird mit Fehler abgebrochen.

Hinweis: Wir empfehlen Punkt 1.

Beispiel-Datei


ChainPreParser.properties
ChainPosition.0=com.ebd.hub.datawizard.parser.stream.QuotationRemover
ChainPosition.1=com.ebd.hub.datawizard.parser.stream.EncodingPatcher 0x74657374=
ChainPosition.2=./conf/ppp/EdifactFormatter.ppp


Hinweis: Diese Datei kann in der GUI auch mit dem Verkettungs-Wizard erstellt werden.

Hinweis: Es ist mit \r\n auch möglich mehrzeilige Preparser-Konfigurationen anzugeben. Wollen Sie also z. B. für den TokenStreamSplitter die Parameter

rows=2
header=CC+SDG

angeben, dann geben Sie das folgendermaßen an.

ChainPosition.0=com.ebd.hub.datawizard.parser.stream.TokenStreamSplitter rows=2\r\nheader=CC+SDG