Package javax.mail.internet

## Class MimePartDataSource

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

All Implemented Interfaces:
  `javax.activation.DataSource`, `MessageAware`

Direct Known Subclasses:
  `IMAPMultipartDataSource`

    public class MimePartDataSource
    extends java.lang.Object
    implements javax.activation.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
`protected MimePart` `part` The MimePart that provides the data for this DataSource.

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.String` `getContentType()` Returns the content-type of this DataSource.
`java.io.InputStream` `getInputStream()` Returns an input stream from this MimePart.
`MessageContext` `getMessageContext()` Return the `MessageContext` for the current part.
`java.lang.String` `getName()` DataSource method to return a name.
`java.io.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 Detail

#### part

    protected MimePart part

The MimePart that provides the data for this DataSource.

Since:
  JavaMail 1.4

### Constructor Detail

#### MimePartDataSource

    public MimePartDataSource​(MimePart part)

Constructor, that constructs a DataSource from a MimePart.

Parameters:
  `part` - the MimePart

### Method Detail

#### getInputStream

    public java.io.InputStream getInputStream()
                                       throws java.io.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 `javax.activation.DataSource`
Returns:
  decoded input stream
Throws:
  `java.io.IOException`
See Also:
  `MimeMessage.getContentStream()`, `MimeBodyPart.getContentStream()`, `MimeUtility.decode(java.io.InputStream, java.lang.String)`

#### getOutputStream

    public java.io.OutputStream getOutputStream()
                                         throws java.io.IOException

DataSource method to return an output stream.

This implementation throws the UnknownServiceException.

Specified by:
  `getOutputStream` in interface `javax.activation.DataSource`
Throws:
  `java.io.IOException`

#### getContentType

    public java.lang.String getContentType()

Returns the content-type of this DataSource.

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

Specified by:
  `getContentType` in interface `javax.activation.DataSource`

#### getName

    public java.lang.String getName()

DataSource method to return a name.

This implementation just returns an empty string.

Specified by:
  `getName` in interface `javax.activation.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