javax.mail.internet

Class InternetHeaders

public class InternetHeaders extends Object

A collection of RFC 822 headers.

The string representation of RFC822 and MIME header fields must contain only US-ASCII characters. Non US-ASCII characters must be encoded as per the rules in RFC 2047. This class does not enforce those rules; the caller is expected to use MimeUtility to ensure that header values are correctly encoded.

Version: 1.3

Author: Chris Burdess

Constructor Summary
InternetHeaders()
Constructor for an empty InternetHeaders.
InternetHeaders(InputStream is)
Constructor with an RFC 822 message stream.
Method Summary
voidaddHeader(String name, String value)
Adds the specified header.
voidaddHeaderLine(String line)
Adds an RFC 822 header-line to this InternetHeaders.
EnumerationgetAllHeaderLines()
Returns all the header-lines.
EnumerationgetAllHeaders()
Returns all the headers.
String[]getHeader(String name)
Returns all the values for the specified header.
StringgetHeader(String name, String delimiter)
Returns all the headers for this header name as a single string, with headers separated by the given delimiter.
EnumerationgetMatchingHeaderLines(String[] names)
Returns all the header-lines with any of the given names.
EnumerationgetMatchingHeaders(String[] names)
Returns all the headers with any of the given names.
EnumerationgetNonMatchingHeaderLines(String[] names)
Returns all the header-lines without any of the given names.
EnumerationgetNonMatchingHeaders(String[] names)
Returns all the headers without any of the given names.
voidload(InputStream is)
Parses the specified RFC 822 message stream, storing the headers in this InternetHeaders.
voidremoveHeader(String name)
Removes all headers matching the given name.
voidsetHeader(String name, String value)
Sets the specified header.

Constructor Detail

InternetHeaders

public InternetHeaders()
Constructor for an empty InternetHeaders.

InternetHeaders

public InternetHeaders(InputStream is)
Constructor with an RFC 822 message stream. The stream is parsed up to the blank line separating the headers from the body, and is left positioned at the start of the body.

Parameters: is an RFC 822 input stream

Method Detail

addHeader

public void addHeader(String name, String value)
Adds the specified header.

Parameters: name the header name value the header value

addHeaderLine

public void addHeaderLine(String line)
Adds an RFC 822 header-line to this InternetHeaders. If the line starts with a space or tab (a continuation line for a folded header), adds it to the last header line in the list.

Parameters: line the raw RFC 822 header-line

getAllHeaderLines

public Enumeration getAllHeaderLines()
Returns all the header-lines.

Returns: an Enumeration of Strings

getAllHeaders

public Enumeration getAllHeaders()
Returns all the headers.

Returns: an Enumeration of Header objects

getHeader

public String[] getHeader(String name)
Returns all the values for the specified header.

Parameters: name the header name

getHeader

public String getHeader(String name, String delimiter)
Returns all the headers for this header name as a single string, with headers separated by the given delimiter. If the delimiter is null, only the first header is returned.

Parameters: name the header name delimiter the delimiter

getMatchingHeaderLines

public Enumeration getMatchingHeaderLines(String[] names)
Returns all the header-lines with any of the given names.

Returns: an Enumeration of Strings

getMatchingHeaders

public Enumeration getMatchingHeaders(String[] names)
Returns all the headers with any of the given names.

Parameters: names the names to match

Returns: an Enumeration of Header objects

getNonMatchingHeaderLines

public Enumeration getNonMatchingHeaderLines(String[] names)
Returns all the header-lines without any of the given names.

Returns: an Enumeration of Strings

getNonMatchingHeaders

public Enumeration getNonMatchingHeaders(String[] names)
Returns all the headers without any of the given names.

Parameters: names the names not to match

Returns: an Enumeration of Header objects

load

public void load(InputStream is)
Parses the specified RFC 822 message stream, storing the headers in this InternetHeaders. The stream is parsed up to the blank line separating the headers from the body, and is left positioned at the start of the body. Note that the headers are added into this InternetHeaders object: any existing headers in this object are not affected.

Parameters: is an RFC 822 input stream

removeHeader

public void removeHeader(String name)
Removes all headers matching the given name.

Parameters: name the header name

setHeader

public void setHeader(String name, String value)
Sets the specified header. If existing header lines match the given name, they are all replaced by the specified value.

Parameters: name the header name value the header value

©