Package javax.mail.internet

# Class MimePartDataSource

java.lang.Object
javax.mail.internet.MimePartDataSource

All Implemented Interfaces:
  `DataSource`, `MessageAware`

Direct Known Subclasses:
  `IMAPMultipartDataSource`

public class MimePartDataSource extends Object implements DataSource, MessageAware
A utility class that implements a DataSource out of a MimePart. This class is primarily meant for service providers.

Author:
  John Mani
See Also:
  - `MimePart`
  - `DataSource`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected MimePart`
`part`
The MimePart that provides the data for this DataSource.

## Constructor Summary

Constructors
Constructor
Description
`MimePartDataSource(MimePart part)`
Constructor, that constructs a DataSource from a MimePart.

## Method Summary

Modifier and Type
Method
Description
`String`
`getContentType()`
Returns the content-type of this DataSource.
`InputStream`
`getInputStream()`
Returns an input stream from this MimePart.
`MessageContext`
`getMessageContext()`
Return the `MessageContext` for the current part.
`String`
`getName()`
DataSource method to return a name.
`OutputStream`
`getOutputStream()`
DataSource method to return an output stream.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### part

protected MimePart part
The MimePart that provides the data for this DataSource.

Since:
  JavaMail 1.4

## Constructor Details

### MimePartDataSource

public MimePartDataSource(MimePart part)
Constructor, that constructs a DataSource from a MimePart.

Parameters:
  `part` - the MimePart

## Method Details

### getInputStream

public InputStream getInputStream() throws IOException
Returns an input stream from this MimePart.

This method applies the appropriate transfer-decoding, based on the Content-Transfer-Encoding attribute of this MimePart. Thus the returned input stream is a decoded stream of bytes.

This implementation obtains the raw content from the Part using the `getContentStream()` method and decodes it using the `MimeUtility.decode()` method.

Specified by:
  `getInputStream` in interface `DataSource`
Returns:
  decoded input stream
Throws:
  `IOException`
See Also:
  - `MimeMessage.getContentStream()`
  - `MimeBodyPart.getContentStream()`
  - `MimeUtility.decode(java.io.InputStream, java.lang.String)`

### getOutputStream

public OutputStream getOutputStream() throws IOException
DataSource method to return an output stream.

This implementation throws the UnknownServiceException.

Specified by:
  `getOutputStream` in interface `DataSource`
Throws:
  `IOException`

### getContentType

public String getContentType()
Returns the content-type of this DataSource.

This implementation just invokes the `getContentType` method on the MimePart.

Specified by:
  `getContentType` in interface `DataSource`

### getName

public String getName()
DataSource method to return a name.

This implementation just returns an empty string.

Specified by:
  `getName` in interface `DataSource`

### getMessageContext

public MessageContext getMessageContext()
Return the `MessageContext` for the current part.

Specified by:
  `getMessageContext` in interface `MessageAware`
Returns:
  the message context
Since:
  JavaMail 1.1