Package jakarta.mail.internet
Class HeaderTokenizer
java.lang.Object
jakarta.mail.internet.HeaderTokenizer
This class tokenizes RFC822 and MIME headers into the basic
symbols specified by RFC822 and MIME.
This class handles folded headers (ie headers with embedded CRLF SPACE sequences). The folds are removed in the returned tokens.
- Author:
- John Mani, Bill Shannon
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
The Token class represents tokens returned by the HeaderTokenizer. -
Field Summary
-
Constructor Summary
ConstructorDescriptionHeaderTokenizer
(String header) Constructor.HeaderTokenizer
(String header, String delimiters) Constructor.HeaderTokenizer
(String header, String delimiters, boolean skipComments) Constructor that takes a rfc822 style header. -
Method Summary
Modifier and TypeMethodDescriptionReturn the rest of the Header.next()
Parses the next token from this String.next
(char endOfAtom) Parses the next token from this String.next
(char endOfAtom, boolean keepEscapes) Parses the next token from this String.peek()
Peek at the next token, without actually removing the token from the parse stream.
-
Field Details
-
RFC822
RFC822 specials- See Also:
-
MIME
MIME specials- See Also:
-
-
Constructor Details
-
HeaderTokenizer
Constructor that takes a rfc822 style header.- Parameters:
skipComments
- If true, comments are skipped and not returned as tokensheader
- The rfc822 header to be tokenizeddelimiters
- Set of delimiter characters to be used to delimit ATOMS. These are usuallyRFC822
orMIME
-
HeaderTokenizer
Constructor. Comments are ignored and not returned as tokens- Parameters:
header
- The header that is tokenizeddelimiters
- The delimiters to be used
-
HeaderTokenizer
Constructor. The RFC822 defined delimiters - RFC822 - are used to delimit ATOMS. Also comments are skipped and not returned as tokens- Parameters:
header
- the header string
-
-
Method Details
-
next
Parses the next token from this String.Clients sit in a loop calling next() to parse successive tokens until an EOF Token is returned.
- Returns:
- the next Token
- Throws:
ParseException
- if the parse fails
-
next
Parses the next token from this String. If endOfAtom is not NUL, the token extends until the endOfAtom character is seen, or to the end of the header. This method is useful when parsing headers that don't obey the MIME specification, e.g., by failing to quote parameter values that contain spaces.- Parameters:
endOfAtom
- if not NUL, character marking end of token- Returns:
- the next Token
- Throws:
ParseException
- if the parse fails- Since:
- JavaMail 1.5
-
next
Parses the next token from this String. endOfAtom is handled as above. If keepEscapes is true, any backslash escapes are preserved in the returned string. This method is useful when parsing headers that don't obey the MIME specification, e.g., by failing to escape backslashes in the filename parameter.- Parameters:
endOfAtom
- if not NUL, character marking end of tokenkeepEscapes
- keep all backslashes in returned string?- Returns:
- the next Token
- Throws:
ParseException
- if the parse fails- Since:
- JavaMail 1.5
-
peek
Peek at the next token, without actually removing the token from the parse stream. Invoking this method multiple times will return successive tokens, untilnext()
is called.- Returns:
- the next Token
- Throws:
ParseException
- if the parse fails
-
getRemainder
Return the rest of the Header.- Returns:
- String rest of header. null is returned if we are already at end of header
-