javax.mail.internet
Class InternetHeaders

java.lang.Object
  extended by javax.mail.internet.InternetHeaders

public class InternetHeaders
extends java.lang.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.4
Author:
Chris Burdess

Nested Class Summary
protected static class InternetHeaders.InternetHeader
           
 
Field Summary
protected  java.util.List headers
          The list of headers.
 
Constructor Summary
InternetHeaders()
          Constructor for an empty InternetHeaders.
InternetHeaders(java.io.InputStream is)
          Constructor with an RFC 822 message stream.
 
Method Summary
 void addHeader(java.lang.String name, java.lang.String value)
          Adds the specified header.
 void addHeaderLine(java.lang.String line)
          Adds an RFC 822 header-line to this InternetHeaders.
 java.util.Enumeration getAllHeaderLines()
          Returns all the header-lines.
 java.util.Enumeration getAllHeaders()
          Returns all the headers.
 java.lang.String[] getHeader(java.lang.String name)
          Returns all the values for the specified header.
 java.lang.String getHeader(java.lang.String name, java.lang.String delimiter)
          Returns all the headers for this header name as a single string, with headers separated by the given delimiter.
 java.util.Enumeration getMatchingHeaderLines(java.lang.String[] names)
          Returns all the header-lines with any of the given names.
 java.util.Enumeration getMatchingHeaders(java.lang.String[] names)
          Returns all the headers with any of the given names.
 java.util.Enumeration getNonMatchingHeaderLines(java.lang.String[] names)
          Returns all the header-lines without any of the given names.
 java.util.Enumeration getNonMatchingHeaders(java.lang.String[] names)
          Returns all the headers without any of the given names.
 void load(java.io.InputStream is)
          Parses the specified RFC 822 message stream, storing the headers in this InternetHeaders.
 void removeHeader(java.lang.String name)
          Removes all headers matching the given name.
 void setHeader(java.lang.String name, java.lang.String value)
          Sets the specified header.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

headers

protected java.util.List headers
The list of headers.

Since:
JavaMail 1.4
Constructor Detail

InternetHeaders

public InternetHeaders()
Constructor for an empty InternetHeaders.


InternetHeaders

public InternetHeaders(java.io.InputStream is)
                throws MessagingException
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
Throws:
MessagingException
Method Detail

load

public void load(java.io.InputStream is)
          throws MessagingException
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
Throws:
MessagingException

getHeader

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

Parameters:
name - the header name

getHeader

public java.lang.String getHeader(java.lang.String name,
                                  java.lang.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

setHeader

public void setHeader(java.lang.String name,
                      java.lang.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

addHeader

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

Parameters:
name - the header name
value - the header value

removeHeader

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

Parameters:
name - the header name

getAllHeaders

public java.util.Enumeration getAllHeaders()
Returns all the headers.

Returns:
an Enumeration of Header objects

getMatchingHeaders

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

Parameters:
names - the names to match
Returns:
an Enumeration of Header objects

getNonMatchingHeaders

public java.util.Enumeration getNonMatchingHeaders(java.lang.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

addHeaderLine

public void addHeaderLine(java.lang.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 java.util.Enumeration getAllHeaderLines()
Returns all the header-lines.

Returns:
an Enumeration of Strings

getMatchingHeaderLines

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

Returns:
an Enumeration of Strings

getNonMatchingHeaderLines

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

Returns:
an Enumeration of Strings


© Copyright 2003, 2004 The Free Software Foundation, All rights reserved