Module jakarta.mail

Class 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 
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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