org.pm4j.core.pm.impl.expr.parser
Class ParseCtxt

java.lang.Object
  extended by org.pm4j.core.pm.impl.expr.parser.ParseCtxt

public class ParseCtxt
extends java.lang.Object

Implementiert technischen Hilfsfunktionen zum Parsen der XML-ähnlichen Struktur der Medientexte.


Constructor Summary
ParseCtxt(java.lang.String text)
           
 
Method Summary
 char currentChar()
          Darf nur aufgerufen werden wenn isDone() false liefert.
 int getPos()
           
 java.lang.String getText()
           
 boolean isDone()
           
 boolean isNameMiddleChar(char ch)
           
 boolean isNameStartChar(char ch)
           
 boolean isOnChar(char ch)
           
static boolean isSpace(char ch)
           
 void readChar(char ch)
          Liest ein definiertes Zeichen.
 char readCharAndAdvance()
          Liest das aktuelle Zeichen und inkrementiert die Position.
 java.lang.String readNameString()
          Reads a typical name, starting with a letter, containing letters, numbers and underlines in the following characters.
 boolean readOptionalChar(char ch)
          If the current character matches the parameter value, this parse position will be advanced.
 boolean readOptionalString(java.lang.String s)
          Liest einen definierten String.
 void readString(java.lang.String s)
          Liest einen definierten String.
 java.lang.String readTill(char ch)
          Liest alle Zeichen bis zu dem im Parameter definierten Begrenzungszeichen.
 void setPos(int newPos)
           
 ParseCtxt skipBlanks()
          Überspringt alle Leerzeichen ab aktueller Position.
 java.lang.String skipBlanksAndReadNameString()
           
 boolean testAndReadChar(char ch)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParseCtxt

public ParseCtxt(java.lang.String text)
Parameters:
text - The text to parse.
Method Detail

isDone

public final boolean isDone()
Returns:
true wenn der Parse-Zeiger ({link pos) am Ende des Textes angelangt ist.

isSpace

public static boolean isSpace(char ch)
Parameters:
ch - Das zu prüfende Zeichen.
Returns:
true wenn es ein Leezeichen, Tab, Newline o.Ä. war.

skipBlanks

public final ParseCtxt skipBlanks()
Überspringt alle Leerzeichen ab aktueller Position.


isOnChar

public final boolean isOnChar(char ch)
Parameters:
ch - The char to check if it is on the current position.
Returns:
true if the char is at the current position.

currentChar

public final char currentChar()
Darf nur aufgerufen werden wenn isDone() false liefert.

Returns:
Das aktuelle Zeichen.

readChar

public final void readChar(char ch)
Liest ein definiertes Zeichen.

Parameters:
ch - Das zu lesende Zeichen.
Throws:
ParseException - wenn das Zeichen nicht auf der aktuellen Position ist.

testAndReadChar

public final boolean testAndReadChar(char ch)

readCharAndAdvance

public final char readCharAndAdvance()
Liest das aktuelle Zeichen und inkrementiert die Position.

Returns:
Das gelesene Zeichen.
Throws:
ArrayOfBoundsException - wenn isDone().

skipBlanksAndReadNameString

public final java.lang.String skipBlanksAndReadNameString()

readNameString

public final java.lang.String readNameString()
Reads a typical name, starting with a letter, containing letters, numbers and underlines in the following characters.

Returns:
The found name string or null if there was none at the current position.

isNameStartChar

public boolean isNameStartChar(char ch)
Parameters:
ch - The character to test.
Returns:
true if it is a letter or an underline.

isNameMiddleChar

public boolean isNameMiddleChar(char ch)
Parameters:
ch - The character to test.
Returns:
true if it is a letter, underline or digit.

readString

public void readString(java.lang.String s)
Liest einen definierten String.

Parameters:
s - Der zu lesende String.
Throws:
ParseException - wenn der String nicht auf der aktuellen Position ist.

readOptionalString

public boolean readOptionalString(java.lang.String s)
Liest einen definierten String. Wenn der String an der aktuellen Position nicht gefunden werden kann, wird der Positionszeiger auch nicht verändert.

Parameters:
s - Der zu lesende String.
Returns:
true wenn der String wirklich gefunden und gelesen werden konnte.

readOptionalChar

public boolean readOptionalChar(char ch)
If the current character matches the parameter value, this parse position will be advanced. Otherwise the parse position remains unchanged.

Parameters:
ch - The character to test.
Returns:
true if the given character had the same value as the character at the current parse position.

readTill

public final java.lang.String readTill(char ch)
Liest alle Zeichen bis zu dem im Parameter definierten Begrenzungszeichen.

Parameters:
ch - Das Begrenzungszeichen.
Returns:
Alle Zeichen vor dem Begrenzer oder alle restlichen Zeichen wenn das Zeichen nicht mehr vorkommt.

getPos

public int getPos()
Returns:
Die aktuelle Position im Text. Beginnt bei 0.

setPos

public void setPos(int newPos)
Parameters:
newPos - Die neue Position.

getText

public java.lang.String getText()
Returns:
Der zu interpretierende Text.