com.openexchange.mail.dataobjects.compose
Class TextBodyMailPart

java.lang.Object
  extended by com.openexchange.mail.dataobjects.MailPart
      extended by com.openexchange.mail.dataobjects.compose.TextBodyMailPart
All Implemented Interfaces:
ComposedMailPart, java.io.Serializable, java.lang.Cloneable

public abstract class TextBodyMailPart
extends MailPart
implements ComposedMailPart

TextBodyMailPart - Designed to keep a mail's (text) body while offering a suitable implementation of MailPart

Author:
Thorben Betten
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.openexchange.mail.dataobjects.compose.ComposedMailPart
ComposedMailPart.ComposedPartType
 
Field Summary
 
Fields inherited from class com.openexchange.mail.dataobjects.MailPart
NO_ENCLOSED_PARTS
 
Constructor Summary
TextBodyMailPart(java.lang.String mailBody)
          Constructs a new TextBodyMailPart The body part is supposed to be HTML content which is ought to be converted to appropriate MIME type on transport.
 
Method Summary
 void append(java.lang.String text)
          Appends specified HTML text to this part.
abstract  TextBodyMailPart copy()
          Gets a copy of this TextBodyMailPart.
 java.lang.Object getContent()
          Returns the part's content as a Java object dependent on underlying implementation.
 javax.activation.DataHandler getDataHandler()
          Returns an appropriate DataHandler for this mail part.
 int getEnclosedCount()
          Gets the number of enclosed mail parts.
 MailPart getEnclosedMailPart(int index)
          Gets the mail part located at given index.
 java.io.InputStream getInputStream()
          Returns an input stream for this part.
 ComposedMailPart.ComposedPartType getType()
           
 void loadContent()
          Ensures that the part's content is loaded, thus this part is independent of the original.
 void prepareForCaching()
          Prepares this mail part to be put into cache; meaning to release all kept resources
 void setText(java.lang.String mailBody)
          Sets this part's text.
 
Methods inherited from class com.openexchange.mail.dataobjects.MailPart
addHeader, addHeaders, clone, containsContentDisposition, containsContentId, containsContentType, containsFileName, containsHeader, containsHeaders, containsMsgref, containsSequenceId, containsSize, getContentDisposition, getContentId, getContentType, getFileName, getFirstHeader, getHeader, getHeader, getHeader, getHeaders, getHeadersIterator, getHeadersSize, getMatchingHeaders, getMsgref, getNonMatchingHeaders, getSequenceId, getSize, getSource, getSourceBytes, hasEnclosedParts, hasHeaders, removeContentDisposition, removeContentId, removeContentType, removeFileName, removeHeader, removeHeaders, removeMsgref, removeSequenceId, removeSize, setContentDisposition, setContentDisposition, setContentId, setContentType, setContentType, setFileName, setMsgref, setSequenceId, setSize, writeTo
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextBodyMailPart

public TextBodyMailPart(java.lang.String mailBody)
Constructs a new TextBodyMailPart

The body part is supposed to be HTML content which is ought to be converted to appropriate MIME type on transport.

Parameters:
mailBody - The mail body as HTML content
Method Detail

copy

public abstract TextBodyMailPart copy()
                               throws MailException
Gets a copy of this TextBodyMailPart.

Returns:
A copy of this {@link TextBodyMailPart
Throws:
MailException - If creating a copy fails

setText

public void setText(java.lang.String mailBody)
Sets this part's text.

The body part is supposed to be HTML content which is ought to be converted to appropriate MIME type on transport.

Parameters:
mailBody - The mail body as HTML content

append

public void append(java.lang.String text)
Appends specified HTML text to this part.

Parameters:
text - The HTML content to append

getContent

public java.lang.Object getContent()
                            throws MailException
Description copied from class: MailPart
Returns the part's content as a Java object dependent on underlying implementation.
This method is not applicable if part's MIME type is multipart/*

Specified by:
getContent in class MailPart
Returns:
The content as a Java object or null if not applicable
Throws:
MailException - If content cannot be returned as a Java object

getDataHandler

public javax.activation.DataHandler getDataHandler()
                                            throws MailException
Description copied from class: MailPart
Returns an appropriate DataHandler for this mail part.
This method is not applicable if part's MIME type is multipart/*

Specified by:
getDataHandler in class MailPart
Returns:
an appropriate DataHandler or null if not applicable
Throws:
MailException - If an appropriate DataHandler cannot be returned

getEnclosedCount

public int getEnclosedCount()
                     throws MailException
Description copied from class: MailPart
Gets the number of enclosed mail parts.
This method is only applicable if part's MIME type is multipart/*

Specified by:
getEnclosedCount in class MailPart
Returns:
The number of enclosed mail parts or MailPart.NO_ENCLOSED_PARTS if not applicable
Throws:
MailException
See Also:
MailPart.NO_ENCLOSED_PARTS

getEnclosedMailPart

public MailPart getEnclosedMailPart(int index)
                             throws MailException
Description copied from class: MailPart
Gets the mail part located at given index.
This method is only applicable if part's MIME type is multipart/*

Specified by:
getEnclosedMailPart in class MailPart
Parameters:
index - The index of desired mail part or null if not applicable
Returns:
The mail part
Throws:
MailException

getInputStream

public java.io.InputStream getInputStream()
                                   throws MailException
Description copied from class: MailPart
Returns an input stream for this part.
This method is not applicable if part's MIME type is multipart/*

Specified by:
getInputStream in class MailPart
Returns:
An input stream for this part or null if not applicable
Throws:
MailException - If no input stream could be returned

loadContent

public void loadContent()
Description copied from class: MailPart
Ensures that the part's content is loaded, thus this part is independent of the original.

This method is intended for mailing systems that read the contents stepwise on demand. If dealing with such a mail part with its underlying connection closed, the part's content is no more accessible. Otherwise this method may be implemented with an empty body.

Moreover the loaded content is no more discarded when MailPart.prepareForCaching() is invoked.

Specified by:
loadContent in class MailPart

prepareForCaching

public void prepareForCaching()
Description copied from class: MailPart
Prepares this mail part to be put into cache; meaning to release all kept resources

Specified by:
prepareForCaching in class MailPart

getType

public ComposedMailPart.ComposedPartType getType()
Specified by:
getType in interface ComposedMailPart
Returns:
This SMTP part's type as a ComposedMailPart.ComposedPartType enumeration type