javax.mail.internet

## Class HeaderTokenizer

- java.lang.Object
- - javax.mail.internet.HeaderTokenizer

-     public class HeaderTokenizer
      extends Object

  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.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `HeaderTokenizer.Token` The Token class represents tokens returned by the HeaderTokenizer.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `MIME` MIME specials
    `static String` | `RFC822` RFC822 specials

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HeaderTokenizer(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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### RFC822

          public static final String RFC822

      RFC822 specials
      See Also:
        Constant Field Values

    - #### MIME

          public static final String MIME

      MIME specials
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### HeaderTokenizer

          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

    - #### HeaderTokenizer

          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

    - #### HeaderTokenizer

          public HeaderTokenizer(String header)

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

  - ### Method Detail

    - #### next

          public HeaderTokenizer.Token next()
                                     throws ParseException

      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

    - #### peek

          public HeaderTokenizer.Token peek()
                                     throws ParseException

      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

    - #### getRemainder

          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

Copyright © 2013 Oracle. All Rights Reserved.