public class HeaderTokenizer
extends java.lang.Object
This class handles folded headers (ie headers with embedded CRLF SPACE sequences). The folds are removed in the returned tokens.
Modifier and Type | Class and Description |
---|---|
static class |
HeaderTokenizer.Token
The Token class represents tokens returned by the
HeaderTokenizer.
|
Modifier and Type | Field and Description |
---|---|
private int |
currentPos |
private java.lang.String |
delimiters |
private static HeaderTokenizer.Token |
EOFToken |
private int |
maxPos |
static java.lang.String |
MIME
MIME specials
|
private int |
nextPos |
private int |
peekPos |
static java.lang.String |
RFC822
RFC822 specials
|
private boolean |
skipComments |
private java.lang.String |
string |
Constructor and Description |
---|
HeaderTokenizer(java.lang.String header)
Constructor.
|
HeaderTokenizer(java.lang.String header,
java.lang.String delimiters)
Constructor.
|
HeaderTokenizer(java.lang.String header,
java.lang.String delimiters,
boolean skipComments)
Constructor that takes a rfc822 style header.
|
Modifier and Type | Method and Description |
---|---|
private HeaderTokenizer.Token |
collectString(char eos,
boolean keepEscapes) |
private static java.lang.String |
filterToken(java.lang.String s,
int start,
int end,
boolean keepEscapes) |
private HeaderTokenizer.Token |
getNext(char endOfAtom,
boolean keepEscapes) |
java.lang.String |
getRemainder()
Return the rest of the Header.
|
HeaderTokenizer.Token |
next()
Parses the next token from this String.
|
HeaderTokenizer.Token |
next(char endOfAtom)
Parses the next token from this String.
|
HeaderTokenizer.Token |
next(char endOfAtom,
boolean keepEscapes)
Parses the next token from this String.
|
HeaderTokenizer.Token |
peek()
Peek at the next token, without actually removing the token
from the parse stream.
|
private int |
skipWhiteSpace() |
private static java.lang.String |
trimWhiteSpace(java.lang.String s) |
private java.lang.String string
private boolean skipComments
private java.lang.String delimiters
private int currentPos
private int maxPos
private int nextPos
private int peekPos
public static final java.lang.String RFC822
public static final java.lang.String MIME
private static final HeaderTokenizer.Token EOFToken
public HeaderTokenizer(java.lang.String header, java.lang.String delimiters, boolean skipComments)
header
- The rfc822 header to be tokenizeddelimiters
- Set of delimiter characters
to be used to delimit ATOMS. These
are usually RFC822
or
MIME
skipComments
- If true, comments are skipped and
not returned as tokenspublic HeaderTokenizer(java.lang.String header, java.lang.String delimiters)
header
- The header that is tokenizeddelimiters
- The delimiters to be usedpublic HeaderTokenizer(java.lang.String header)
header
- the header stringpublic HeaderTokenizer.Token next() throws ParseException
Clients sit in a loop calling next() to parse successive tokens until an EOF Token is returned.
ParseException
- if the parse failspublic HeaderTokenizer.Token next(char endOfAtom) throws ParseException
endOfAtom
- if not NUL, character marking end of tokenParseException
- if the parse failspublic HeaderTokenizer.Token next(char endOfAtom, boolean keepEscapes) throws ParseException
endOfAtom
- if not NUL, character marking end of tokenkeepEscapes
- keep all backslashes in returned string?ParseException
- if the parse failspublic HeaderTokenizer.Token peek() throws ParseException
next()
is
called. ParseException
- if the parse failspublic java.lang.String getRemainder()
private HeaderTokenizer.Token getNext(char endOfAtom, boolean keepEscapes) throws ParseException
ParseException
private HeaderTokenizer.Token collectString(char eos, boolean keepEscapes) throws ParseException
ParseException
private int skipWhiteSpace()
private static java.lang.String trimWhiteSpace(java.lang.String s)
private static java.lang.String filterToken(java.lang.String s, int start, int end, boolean keepEscapes)