gnu.mail.providers.maildir

Class MaildirMessage

Implemented Interfaces:
MimePart, Part

public final class MaildirMessage
extends gnu.mail.providers.ReadOnlyMessage

The message class implementing the Maildir mail protocol.
Author:
Chris Burdess

Nested Class Summary

Nested classes/interfaces inherited from class javax.mail.internet.MimeMessage

MimeMessage.RecipientType

Nested classes/interfaces inherited from class javax.mail.Message

Message.RecipientType

Field Summary

Fields inherited from class javax.mail.internet.MimeMessage

content, contentStream, dh, flags, headers, modified, saved

Fields inherited from class javax.mail.Message

expunged, folder, msgnum, session

Fields inherited from interface javax.mail.Part

ATTACHMENT, INLINE

Method Summary

boolean
equals(Object other)
Enumeration
getAllHeaderLines()
Get all header lines as an Enumeration of Strings.
Enumeration
getAllHeaders()
Return all the headers from this Message as an enumeration of Header objects.
protected InputStream
getContentStream()
Produce the raw bytes of the content.
DataHandler
getDataHandler()
Return a DataHandler for this Message's content.
String[]
getHeader(String name)
Get all the headers for this header_name.
String
getHeader(String name, String delimiter)
Get all the headers for this header name, returned as a single String, with headers separated by the delimiter.
Enumeration
getMatchingHeaderLines(String[] names)
Get matching header lines as an Enumeration of Strings.
Enumeration
getMatchingHeaders(String[] names)
Return matching headers from this Message as an Enumeration of Header objects.
Enumeration
getNonMatchingHeaderLines(String[] names)
Get non-matching header lines as an Enumeration of Strings.
Enumeration
getNonMatchingHeaders(String[] names)
Return non-matching headers from this Message as an Enumeration of Header objects.
protected void
setExpunged(boolean expunged)
Allow MaildirFolder access to set the expunged flag after expunge.
void
setFlags(Flags flag, boolean set)
Set the specified flags (reflected in the info field).

Methods inherited from class gnu.mail.providers.ReadOnlyMessage

addHeader, addHeaderLine, removeHeader, saveChanges, setContent, setContent, setFlags, setHeader

Methods inherited from class javax.mail.internet.MimeMessage

addFrom, addHeader, addHeaderLine, addRecipients, addRecipients, createInternetHeaders, getAllHeaderLines, getAllHeaders, getAllRecipients, getContent, getContentID, getContentLanguage, getContentMD5, getContentStream, getContentType, getDataHandler, getDescription, getDisposition, getEncoding, getFileName, getFlags, getFrom, getHeader, getHeader, getInputStream, getLineCount, getMatchingHeaderLines, getMatchingHeaders, getMessageID, getNonMatchingHeaderLines, getNonMatchingHeaders, getRawInputStream, getReceivedDate, getRecipients, getReplyTo, getSender, getSentDate, getSize, getSubject, isMimeType, isSet, parse, removeHeader, reply, saveChanges, setContent, setContent, setContentID, setContentLanguage, setContentMD5, setDataHandler, setDescription, setDescription, setDisposition, setFileName, setFlags, setFrom, setFrom, setHeader, setRecipients, setRecipients, setReplyTo, setSender, setSentDate, setSubject, setSubject, setText, setText, updateHeaders, writeTo, writeTo

Methods inherited from class javax.mail.Message

addFrom, addRecipient, addRecipients, getAllRecipients, getFlags, getFolder, getFrom, getMessageNumber, getReceivedDate, getRecipients, getReplyTo, getSentDate, getSubject, isExpunged, isSet, match, reply, saveChanges, setExpunged, setFlag, setFlags, setFrom, setFrom, setMessageNumber, setRecipient, setRecipients, setReplyTo, setSentDate, setSubject

Method Details

equals

public boolean equals(Object other)

getAllHeaderLines

public Enumeration getAllHeaderLines()
            throws MessagingException
Get all header lines as an Enumeration of Strings. A Header line is a raw RFC 822 header-line, containing both the "name" and "value" field.
Specified by:
getAllHeaderLines in interface MimePart
Overrides:
getAllHeaderLines in interface MimeMessage

getAllHeaders

public Enumeration getAllHeaders()
            throws MessagingException
Return all the headers from this Message as an enumeration of Header objects.

Note that certain headers may be encoded as per RFC 2047 if they contain non US-ASCII characters and these should be decoded.

This implementation obtains the headers from the headers InternetHeaders object.

Specified by:
getAllHeaders in interface Part
Overrides:
getAllHeaders in interface MimeMessage
Returns:
array of header objects

getContentStream

protected InputStream getContentStream()
            throws MessagingException
Produce the raw bytes of the content. This method is used during parsing, to create a DataHandler object for the content. Subclasses that can provide a separate input stream for just the message content might want to override this method.

This implementation just returns a ByteArrayInputStream constructed out of the content byte array.

Overrides:
getContentStream in interface MimeMessage

getDataHandler

public DataHandler getDataHandler()
            throws MessagingException
Return a DataHandler for this Message's content.

The implementation provided here works as follows. Note the use of the getContentStream method to generate the byte stream for the content. Also note that any transfer-decoding is done automatically within this method.

getDataHandler() {
if (dh == null) {
dh = new DataHandler(new MimePartDataSource(this));
}
return dh;
}
class MimePartDataSource implements DataSource {
public getInputStream() {
return MimeUtility.decode(
getContentStream(), getEncoding());
}
....
}
Specified by:
getDataHandler in interface Part
Overrides:
getDataHandler in interface MimeMessage

getHeader

public String[] getHeader(String name)
            throws MessagingException
Get all the headers for this header_name. Note that certain headers may be encoded as per RFC 2047 if they contain non US-ASCII characters and these should be decoded.

This implementation obtains the headers from the headers InternetHeaders object.

Specified by:
getHeader in interface Part
Overrides:
getHeader in interface MimeMessage
Parameters:
name - name of header
Returns:
array of headers

getHeader

public String getHeader(String name,
                        String delimiter)
            throws MessagingException
Get all the headers for this header name, returned as a single String, with headers separated by the delimiter. If the delimiter is null, only the first header is returned.
Specified by:
getHeader in interface MimePart
Overrides:
getHeader in interface MimeMessage
Parameters:
name - the name of the header
delimiter - the delimiter
Returns:
the value fields for all headers with this name

getMatchingHeaderLines

public Enumeration getMatchingHeaderLines(String[] names)
            throws MessagingException
Get matching header lines as an Enumeration of Strings. A Header line is a raw RFC 822 header-line, containing both the "name" and "value" field.
Specified by:
getMatchingHeaderLines in interface MimePart
Overrides:
getMatchingHeaderLines in interface MimeMessage

getMatchingHeaders

public Enumeration getMatchingHeaders(String[] names)
            throws MessagingException
Return matching headers from this Message as an Enumeration of Header objects.

This implementation obtains the headers from the headers InternetHeaders object.

Specified by:
getMatchingHeaders in interface Part
Overrides:
getMatchingHeaders in interface MimeMessage

getNonMatchingHeaderLines

public Enumeration getNonMatchingHeaderLines(String[] names)
            throws MessagingException
Get non-matching header lines as an Enumeration of Strings. A Header line is a raw RFC 822 header-line, containing both the "name" and "value" field.
Specified by:
getNonMatchingHeaderLines in interface MimePart
Overrides:
getNonMatchingHeaderLines in interface MimeMessage

getNonMatchingHeaders

public Enumeration getNonMatchingHeaders(String[] names)
            throws MessagingException
Return non-matching headers from this Message as an Enumeration of Header objects.

This implementation obtains the headers from the headers InternetHeaders object.

Specified by:
getNonMatchingHeaders in interface Part
Overrides:
getNonMatchingHeaders in interface MimeMessage

setExpunged

protected void setExpunged(boolean expunged)
Allow MaildirFolder access to set the expunged flag after expunge.
Overrides:
setExpunged in interface Message

setFlags

public void setFlags(Flags flag,
                     boolean set)
            throws MessagingException
Set the specified flags (reflected in the info field).
Overrides:
setFlags in interface gnu.mail.providers.ReadOnlyMessage

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