Class Parser

java.lang.Object
org.simpleframework.common.parse.Parser
Direct Known Subclasses:
AddressParser, ContentDispositionParser, ContentTypeParser, CookieParser, DateParser, ListParser, MapParser, PathParser, PrincipalParser

public abstract class Parser extends Object
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.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected char[]
    This is the buffer that is being parsed.
    protected int
    This represents the length of the buffer.
    protected int
    This represents the current read offset.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    This is a no argument constructor for the Parser.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
    digit(char c)
    This is used to determine weather 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
    This will initialize the Parser when it is ready to parse a new String.
    protected abstract void
    This is the method that should be implemented to read the buf.
    void
    parse(String text)
    This is used to parse the String given to it.
    protected boolean
    skip(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 Details

    • 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 Details

    • 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 Details

    • parse

      public void parse(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 invocations 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 accommodate 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, carriage 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 weather 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(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.