Archived Website: This website is a static snapshot for archival purposes only. It is no longer maintained or updated.

dataprovider.parser
Class SimpleParserService

java.lang.Object
  |
  +--dataprovider.parser.SimpleParserService

public class SimpleParserService
extends java.lang.Object
implements ParserService

Eine konkrete Implementierung des ParserServices. Die Sprache ist relativ simpel gehalten. Für der meisten Web-Angebote reicht dieser Parser jedoch vollkommen aus. Der Parser besteht aus beliebig vielen Zeilen, die man dem Parser mit der Methode setParser( "Zeile1\nZeile2\nZeile3\n" ) uebergibt. Jeder Zeile hat die Form regAusdruck|Variablenname|regAusdruck. Zum Verstaendnis ein konkretes Beispiel: 1.) Die erste Ueberschrift
Die erste Beschreibung

2.) Die zweite Ueberschrift
Die zweite Beschreibung

Aus diesem Text sollen die Bestandteile URL, Ueberschrift und Beschreibung extrahiert werden. Der Parser sieht so aus: Zeile 1: "[0-9]\.) " Zeile 2: "|TITLE|" Zeile 3: "|DESC|" Heisst: Der Parser sieht sich diese Seite an und sucht nach dem ersten Vorkommen des ersten Ausdrucks der ersten Zeile, in diesem Fall "[0-9]\.) ". Alles dazwischen wird mittels ParserStore der Variablen URL zugewiesen. Danach geht es analog weiter mit Zeile 2 und 3. Sobald die letzte Zeile abgearbeitet ist, wird in die erste zurueckgesprungen. Abgebrochen wird der Vorgang, sobald ein Ausdruck nicht mehr auf den verbleibenden Text passt. Die Variablen URL, TITLE und DESC entsprechen den URLs, Titeln und Kurzbeschreibungen von Suchergebnissen. Wer eine SearchResultEnumerationen mit Daten fuellen will, muss im ParserStore in jedem Fall diese Variablen belegen. Zusaetzlich ist es natuerlich erlaubt, weitere Variablen, wie Datum, Download-Groesse zu benutzen und die SearchResultEnumeration entsprechend zu erweitern.

Author:
Markus Hövener

Field Summary
private  java.lang.String footer
           
private  java.lang.String header
           
private  java.lang.String[] parser
           
 
Constructor Summary
SimpleParserService()
           
 
Method Summary
 void ParserService()
           
 ParserStore parseString(java.lang.String s)
           
 void setFooterString(java.lang.String new_footer)
          Normalerweise wird der Parser auf den gesamten String angewendet.
 void setHeaderString(java.lang.String new_header)
          Normalerweise wird der Parser auf den gesamten String angewendet.
 void setParser(java.lang.String[] new_parser)
           
 void SimpleParserService()
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

parser

private java.lang.String[] parser

header

private java.lang.String header

footer

private java.lang.String footer
Constructor Detail

SimpleParserService

public SimpleParserService()
Method Detail

SimpleParserService

public void SimpleParserService()

ParserService

public void ParserService()

parseString

public ParserStore parseString(java.lang.String s)
                        throws ParserServiceUnknownParserException
Specified by:
parseString in interface ParserService

setParser

public void setParser(java.lang.String[] new_parser)
               throws ParserServiceMalformedParserException
Specified by:
setParser in interface ParserService

setHeaderString

public void setHeaderString(java.lang.String new_header)
Normalerweise wird der Parser auf den gesamten String angewendet. Falls man dieser Methode jedoch einen regulären Ausdruck beginnt, wird das Parsen erst hinter dem Teil begonnen, der auf den Ausdruck passt.
Parameters:
new_header - Der reguläre Ausdruck als String

setFooterString

public void setFooterString(java.lang.String new_footer)
Normalerweise wird der Parser auf den gesamten String angewendet. Falls man dieser Methode jedoch einen regulären Ausdruck beginnt, wird das Parsen auf den Teil des Textes beschränkt, der der vor dem auf den Ausdruck passenden Text liegt.
Parameters:
new_header - Der reguläre Ausdruck als String