simple.util.parse
Class Parser

java.lang.Object
  extended by simple.util.parse.Parser
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
ContentParser, CookieParser, DateParser, LanguageParser, ListParser, MapParser, PathParser, PrincipalParser, URIParser

public abstract class Parser
extends java.lang.Object
implements java.io.Serializable

This Parser object is to be used as a simple template for parsing uncomplicated expressions. This object is used to parse a String. This provides a few methods that can be used to store and track the reading of data from a buffer. There are two abstract methods provided to allow this to be subclassed to create a Parser for a given String.

Author:
Niall Gallagher
See Also:
Serialized Form

Field Summary
protected  char[] buf
          This is the buffer that is being parsed.
protected  int count
          This represents the length of the buffer.
protected  int off
          This represents the current read offset.
 
Constructor Summary
protected Parser()
          This is a no argument constructor for the Parser.
 
Method Summary
protected  boolean digit(char c)
          This is used to determine wheather or not a given character is a digit character.
protected  void ensureCapacity(int min)
          This ensure that there is enough space in the buffer to allow for more char's to be added.
protected abstract  void init()
          This will initialize the Parser when it is ready to parse a new String.
protected abstract  void parse()
          This is the method that should be implemented to read the buf.
 void parse(java.lang.String text)
          This is used to parse the String given to it.
protected  boolean skip(java.lang.String text)
          This is used to skip an arbitrary String within the char buf.
protected  boolean space(char c)
          This is used to determine if a given ISO-8859-1 character is a space character.
protected  char toLower(char c)
          This takes a unicode character and assumes an encoding of ISO-8859-1.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

buf

protected char[] buf
This is the buffer that is being parsed.


off

protected int off
This represents the current read offset.


count

protected int count
This represents the length of the buffer.

Constructor Detail

Parser

protected Parser()
This is a no argument constructor for the Parser. This will be invoked by each subclass of this object. It will set the buffer to a zero length buffer so that when the ensureCapacity method is used the buf's length can be checked.

Method Detail

parse

public void parse(java.lang.String text)
This is used to parse the String given to it. This will ensure that the char buffer has enough space to contain the characters from the String. This will firstly ensure that the buffer is resized if nessecary. The second step in this parse method is to initialize the Parser object so that multiple parse invokations can be made. The init method will reset this to an prepared state. Then finally the parse method is called to parse the char buffer.

Parameters:
text - the String to be parsed with this Parser

ensureCapacity

protected void ensureCapacity(int min)
This ensure that there is enough space in the buffer to allow for more char's to be added. If the buffer is already larger than min then the buffer will not be expanded at all.

Parameters:
min - the minimum size needed to accomodate the characters

space

protected boolean space(char c)
This is used to determine if a given ISO-8859-1 character is a space character. That is a whitespace character this sees the, space, carrage return and line feed characters as whitespace characters.

Parameters:
c - the character that is being determined by this
Returns:
true if the character given it is a space character

digit

protected boolean digit(char c)
This is used to determine wheather or not a given character is a digit character. It assumes iso-8859-1 encoding to compare.

Parameters:
c - the character being determined by this method
Returns:
true if the character given is a digit character

toLower

protected char toLower(char c)
This takes a unicode character and assumes an encoding of ISO-8859-1. This then checks to see if the given character is uppercase if it is it converts it into is ISO-8859-1 lowercase char.

Parameters:
c - the char to be converted to lowercase
Returns:
the lowercase ISO-8859-1 of the given character

skip

protected boolean skip(java.lang.String text)
This is used to skip an arbitrary String within the char buf. It checks the length of the String first to ensure that it will not go out of bounds. A comparison is then made with the buffers contents and the String if the reigon in the buffer matched the String then the offset within the buffer is increased by the String's length so that it has effectively skipped it.

Parameters:
text - this is the String value to be skipped
Returns:
true if the String was skipped

init

protected abstract void init()
This will initialize the Parser when it is ready to parse a new String. This will reset the Parser to a ready state. The init method is invoked by the Parser when the parse method is invoked.


parse

protected abstract void parse()
This is the method that should be implemented to read the buf. This method should attempt to extract tokens from the buffer so that thes tokens may some how be used to determine the semantics. This method is invoked after the init method is invoked.