public final class MIMEMultipartMailPart extends MailPart
MIMEMultipartMailPart
- An implementation of MailPart
for mail parts of MIME type multipart/*
.
Parsing of multipart data is based on Knuth-Morris-Pratt (KMP) algorithm.
NO_ENCLOSED_PARTS
Constructor and Description |
---|
MIMEMultipartMailPart(byte[] inputData)
Initializes a new
MIMEMultipartMailPart . |
MIMEMultipartMailPart(ContentType contentType,
byte[] inputData)
Initializes a new
MIMEMultipartMailPart . |
MIMEMultipartMailPart(ContentType contentType,
javax.activation.DataSource dataSource)
Initializes a new
MIMEMultipartMailPart . |
MIMEMultipartMailPart(javax.activation.DataSource dataSource)
Initializes a new
MIMEMultipartMailPart . |
Modifier and Type | Method and Description |
---|---|
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.
|
static int |
getHeaderEnd(byte[] dataBytes) |
java.io.InputStream |
getInputStream()
Returns an input stream for this part.
|
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 |
writeTo(java.io.OutputStream out)
Writes complete part's data into given output stream
|
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, setHeader, setMsgref, setSequenceId, setSize
public MIMEMultipartMailPart(javax.activation.DataSource dataSource) throws com.openexchange.exception.OXException
MIMEMultipartMailPart
.dataSource
- The data sourcecom.openexchange.exception.OXException
- If reading input stream failspublic MIMEMultipartMailPart(ContentType contentType, javax.activation.DataSource dataSource) throws com.openexchange.exception.OXException
MIMEMultipartMailPart
.contentType
- The content type; may be null
dataSource
- The data sourcecom.openexchange.exception.OXException
- If reading input stream failspublic MIMEMultipartMailPart(byte[] inputData) throws com.openexchange.exception.OXException
MIMEMultipartMailPart
.inputData
- The input datacom.openexchange.exception.OXException
- If reading input stream failspublic MIMEMultipartMailPart(ContentType contentType, byte[] inputData) throws com.openexchange.exception.OXException
MIMEMultipartMailPart
.contentType
- The content type; may be null
inputData
- The input datacom.openexchange.exception.OXException
- If reading input stream failspublic java.lang.Object getContent() throws com.openexchange.exception.OXException
MailPart
multipart/*
getContent
in class MailPart
null
if not applicablecom.openexchange.exception.OXException
- If content cannot be returned as a Java objectpublic javax.activation.DataHandler getDataHandler() throws com.openexchange.exception.OXException
MailPart
DataHandler
for this mail part. multipart/*
getDataHandler
in class MailPart
DataHandler
or null
if not applicablecom.openexchange.exception.OXException
- If an appropriate DataHandler
cannot be returnedpublic int getEnclosedCount() throws com.openexchange.exception.OXException
MailPart
multipart/*
getEnclosedCount
in class MailPart
MailPart.NO_ENCLOSED_PARTS
if not applicablecom.openexchange.exception.OXException
MailPart.NO_ENCLOSED_PARTS
public static int getHeaderEnd(byte[] dataBytes)
public MailPart getEnclosedMailPart(int index) throws com.openexchange.exception.OXException
MailPart
multipart/*
getEnclosedMailPart
in class MailPart
index
- The index of desired mail part or null
if not applicablecom.openexchange.exception.OXException
public java.io.InputStream getInputStream() throws com.openexchange.exception.OXException
MailPart
multipart/*
getInputStream
in class MailPart
null
if not applicablecom.openexchange.exception.OXException
- If no input stream could be returnedpublic void loadContent() throws com.openexchange.exception.OXException
MailPart
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.
loadContent
in class MailPart
com.openexchange.exception.OXException
- If loading part's content failspublic void prepareForCaching()
MailPart
prepareForCaching
in class MailPart
public void writeTo(java.io.OutputStream out) throws com.openexchange.exception.OXException
MailPart