Package org.simpleframework.common.parse
Class Parser
java.lang.Object
org.simpleframework.common.parse.Parser
- Direct Known Subclasses:
AddressParser
,ContentDispositionParser
,ContentTypeParser
,CookieParser
,DateParser
,ListParser
,MapParser
,PathParser
,PrincipalParser
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 -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Parser()
This is a no argument constructor for theParser
. -
Method Summary
Modifier and TypeMethodDescriptionprotected 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 morechar
's to be added.protected abstract void
init()
This will initialize theParser
when it is ready to parse a newString
.protected abstract void
parse()
This is the method that should be implemented to read the buf.void
This is used to parse theString
given to it.protected boolean
This is used to skip an arbitraryString
within thechar
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.
-
Field Details
-
buf
protected char[] bufThis is the buffer that is being parsed. -
off
protected int offThis represents the current read offset. -
count
protected int countThis represents the length of the buffer.
-
-
Constructor Details
-
Parser
protected Parser()This is a no argument constructor for theParser
. This will be invoked by each subclass of this object. It will set the buffer to a zero length buffer so that when theensureCapacity
method is used the buf's length can be checked.
-
-
Method Details
-
parse
This is used to parse theString
given to it. This will ensure that thechar
buffer has enough space to contain the characters from theString
. This will firstly ensure that the buffer is resized if nessecary. The second step in thisparse
method is to initialize theParser
object so that multiple parse invocations can be made. Theinit
method will reset this to an prepared state. Then finally theparse
method is called to parse thechar
buffer.- Parameters:
text
- theString
to be parsed with thisParser
-
ensureCapacity
protected void ensureCapacity(int min) This ensure that there is enough space in the buffer to allow for morechar
'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
- thechar
to be converted to lowercase- Returns:
- the lowercase ISO-8859-1 of the given character
-
skip
This is used to skip an arbitraryString
within thechar
buf. It checks the length of theString
first to ensure that it will not go out of bounds. A comparison is then made with the buffers contents and theString
if the reigon in the buffer matched theString
then the offset within the buffer is increased by theString
's length so that it has effectively skipped it.- Parameters:
text
- this is theString
value to be skipped- Returns:
- true if the
String
was skipped
-
init
protected abstract void init()This will initialize theParser
when it is ready to parse a newString
. This will reset theParser
to a ready state. Theinit
method is invoked by theParser
when theparse
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 theinit
method is invoked.
-