public class

HeaderTokenizer

extends Object
java.lang.Object
   ↳ com.google.code.javax.mail.internet.HeaderTokenizer

Class Overview

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.

Summary

Nested Classes
class HeaderTokenizer.Token The Token class represents tokens returned by the HeaderTokenizer. 
Constants
String MIME MIME specials
String RFC822 RFC822 specials
Fields
private static final HeaderTokenizer.Token EOFToken
private int currentPos
private String delimiters
private int maxPos
private int nextPos
private int peekPos
private boolean skipComments
private String string
Public Constructors
HeaderTokenizer(String header, String delimiters, boolean skipComments)
Constructor that takes a rfc822 style header.
HeaderTokenizer(String header, String delimiters)
Constructor.
HeaderTokenizer(String header)
Constructor.
Public Methods
String getRemainder()
Return the rest of the Header.
HeaderTokenizer.Token next()
Parses the next token from this String.
HeaderTokenizer.Token peek()
Peek at the next token, without actually removing the token from the parse stream.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String MIME

MIME specials

Constant Value: "()<>@,;:\" []/?="

public static final String RFC822

RFC822 specials

Constant Value: "()<>@,;:\" .[]"

Fields

private static final HeaderTokenizer.Token EOFToken

private int currentPos

private String delimiters

private int maxPos

private int nextPos

private int peekPos

private boolean skipComments

private String string

Public Constructors

public HeaderTokenizer (String header, String delimiters, boolean skipComments)

Constructor that takes a rfc822 style header.

Parameters
header The rfc822 header to be tokenized
delimiters 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 tokens

public HeaderTokenizer (String header, String delimiters)

Constructor. Comments are ignored and not returned as tokens

Parameters
header The header that is tokenized
delimiters The delimiters to be used

public HeaderTokenizer (String header)

Constructor. The RFC822 defined delimiters - RFC822 - are used to delimit ATOMS. Also comments are skipped and not returned as tokens

Parameters
header

Public Methods

public String getRemainder ()

Return the rest of the Header.

Returns
  • String rest of header. null is returned if we are already at end of header

public HeaderTokenizer.Token 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

public HeaderTokenizer.Token peek ()

Peek at the next token, without actually removing the token from the parse stream. Invoking this method multiple times will return successive tokens, until next() is called.

Returns
  • the next Token
Throws
ParseException if the parse fails