Repository navigation
Development NewParser
Diese Anleitung erklärt, wie ein neuer Parser geschrieben werden kann.
- Ein Parser dient der Verarbeitung von Daten, damit diese für den Import aufbereitet werden können.
- Jeder Parser liest die Inhalte aus einem Stream
- Jeder Parser nutzt die Schnittstellen des Importers, um Daten hinzuzufügen
- Parser sollen immer so allgemein wie möglich geschrieben werden, setzen sie lieber auf Konfigurierbarkeit, als sich zu sehr auf ein Datenformat zu fixieren.
Parser sind NICHT dafür da Anbindungen an neue Datenquellen (z.B. Datenbanken) zu realisieren, hierfür implementieren Sie bitte einen eigenen Importer.
Ausgangspunkt für jeden neuen Parser ist die abstrakte Klasse Parser. Diese bietet Zugriff auf den Importer.
Sie können ihren Parser in einem beliebigen Unterpackage von de.smartdata.porter.importer.parser anlegen. Er wird automatisch eingebunden und zur Verfügung gestellt.
Die folgenden Methoden müssen für den Parser implementiert werden:
| Methode | Beschreibung |
|---|---|
| getDescription() | Liefert eine kurze Beschreibung ihres Parsers für den Endanwender |
| isAccepted() | Prüft anhand von Mime-Type, Inhalt oder Dateinamen die Zuständigkeit |
| preParse() | Für vor dem Parsvorgang durchzuführende Aufgaben |
| parse(InputStream is) | Parst den InputStream und fügt die Daten zum Importer hinzu |
Der Importer steht ihnen innerhalb des Parsers über this._importer zur Verfügung. Er bietet folgende Methoden:
| Methode | Beschreibung |
|---|---|
| getConfig() | Liefert die Import-Konfiguration |
| getStreamDescriptor() | Beschreibung des zu parsenden Streams (z.B. Dateiname, Anlagedatum) |
| addDataSet(JsonObject) | Hinzufügen eines einzelnen Datensatzes |
| addDataSets(List<>) | Hinzufügen mehrerer Datensätze |
Das ParserResult dient der Statistik und Anzeige für den Endnutzer. Es muss durch jeden Parser gefüllt werden. Weitere Informationen siehe: ParserResult