com.independentsoft.msg

## Class Attachment

- java.lang.Object
- - com.independentsoft.msg.Attachment

-     public class Attachment
      extends java.lang.Object

  Represents an attachment to a message.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Attachment()` Initializes a new instance of the Attachment class.
    `Attachment(java.lang.String filePath)` Initializes a new instance of the Attachment class based on the supplied file.
    `Attachment(java.lang.String fileName, byte[] buffer)` Initializes a new instance of the Attachment class based on the supplied byte array.
    `Attachment(java.lang.String fileName, java.io.InputStream inputStream)` Instantiates a new attachment.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getAdditionalInfo()` Gets file type information for a non-Windows attachment.
    `java.lang.String` | `getContentBase()` Gets the content base header of a MIME message attachment.
    `java.lang.String` | `getContentDisposition()` Gets the content disposition header of a MIME message attachment.
    `java.lang.String` | `getContentId()` Gets the content identification header of a MIME message attachment.
    `java.lang.String` | `getContentLocation()` Gets the content location header of a MIME message attachment.
    `byte[]` | `getData()` Gets binary attachment data.
    `byte[]` | `getDataObject()` Gets attachment's data as embedded object.
    `java.lang.String` | `getDisplayName()` Gets the display name of the attachment.
    `Message` | `getEmbeddedMessage()` Gets Message object if the attachment is an embedded Message.
    `byte[]` | `getEncoding()` Gets the encoding for an attachment.
    `java.lang.String` | `getExtension()` Gets a file name extension that indicates the document type of an attachment.
    `java.lang.String` | `getFileName()` Gets an attachment's base file name and extension, excluding path.
    `AttachmentFlags` | `getFlags()` Gets flags for an attachment.
    `java.io.InputStream` | `getInputStream()` Gets stream to read from this attachment.
    `java.lang.String` | `getLongFileName()` Gets an attachment's long filename and extension, excluding path.
    `java.lang.String` | `getLongPathName()` Gets an attachment's fully-qualified long path and filename.
    `AttachmentMethod` | `getMethod()` Gets a MAPI-defined constant representing the way the contents of an attachment can be accessed.
    `long` | `getMimeSequence()` Gets the MIME sequence number of a MIME message attachment.
    `java.lang.String` | `getMimeTag()` Gets formatting information about a MIME attachment.
    `ObjectType` | `getObjectType()` Gets the type of the attachment.
    `java.lang.String` | `getPathName()` Gets an attachment's fully-qualified path and filename.
    `byte[]` | `getRecordKey()` Gets the record key for an attachment.
    `byte[]` | `getRendering()` Gets a metafile with rendering information for an attachment.
    `long` | `getRenderingPosition()` Gets rendering position index.
    `long` | `getSize()` Gets attachment's size in bytes.
    `byte[]` | `getTag()` Gets an object identifier specifying the application that supplied an attachment.
    `java.lang.String` | `getTransportName()` Gets the name of an attachment file modified so that it can be associated with TNEF messages.
    `boolean` | `isContactPhoto()` Gets whether this attachment is a contact photo.
    `boolean` | `isHidden()` Gets whether an attachment is hidden from the end user.
    `void` | `save(java.io.OutputStream outputStream)` Saves this attachment to the specified stream.
    `void` | `save(java.lang.String filePath)` Saves this attachment to the specified file.
    `void` | `save(java.lang.String filePath, boolean overwrite)` Saves this attachment to the specified file.
    `void` | `setAdditionalInfo(byte[] additionalInfo)` Provides file type information for a non-Windows attachment.
    `void` | `setContactPhoto(boolean isContactPhoto)` Sets whether this attachment is a contact photo.
    `void` | `setContentBase(java.lang.String contentBase)` Sets the content base header of a MIME message attachment.
    `void` | `setContentDisposition(java.lang.String contentDisposition)` Sets the content disposition header of a MIME message attachment.
    `void` | `setContentId(java.lang.String contentId)` Sets the content identification header of a MIME message attachment.
    `void` | `setContentLocation(java.lang.String contentLocation)` Sets the content location header of a MIME message attachment.
    `void` | `setData(byte[] data)` Sets binary attachment data.
    `void` | `setDataObject(byte[] dataObject)` Sets attachment's data as embedded object.
    `void` | `setDisplayName(java.lang.String displayName)` Sets the display name of the attachment.
    `void` | `setEmbeddedMessage(Message embeddedMessage)` Sets Message object if the attachment is an embedded Message.
    `void` | `setEncoding(byte[] encoding)` Sets the encoding for an attachment.
    `void` | `setExtension(java.lang.String extension)` Sets a file name extension that indicates the document type of an attachment.
    `void` | `setFileName(java.lang.String fileName)` Sets an attachment's base file name and extension, excluding path.
    `void` | `setFlags(AttachmentFlags flags)` Sets flags for an attachment.
    `void` | `setHidden(boolean isHidden)` Sets whether an attachment is hidden from the end user.
    `void` | `setLongFileName(java.lang.String longFileName)` Sets an attachment's long filename and extension, excluding path.
    `void` | `setLongPathName(java.lang.String longPathName)` Sets an attachment's fully-qualified long path and filename.
    `void` | `setMethod(AttachmentMethod method)` Sets a MAPI-defined constant representing the way the contents of an attachment can be accessed.
    `void` | `setMimeSequence(long mimeSequence)` Sets the MIME sequence number of a MIME message attachment.
    `void` | `setMimeTag(java.lang.String mimeTag)` Sets formatting information about a MIME attachment.
    `void` | `setObjectType(ObjectType objectType)` Sets the type of the attachment.
    `void` | `setPathName(java.lang.String pathName)` Sets an attachment's fully-qualified path and filename.
    `void` | `setRecordKey(byte[] recordKey)` Sets the record key for an attachment.
    `void` | `setRendering(byte[] rendering)` Sets a metafile with rendering information for an attachment.
    `void` | `setRenderingPosition(long renderingPosition)` Sets rendering position index.
    `void` | `setSize(long size)` Sets attachment's size in bytes.
    `void` | `setTag(byte[] tag)` Sets an object identifier specifying the application that supplied an attachment.
    `void` | `setTransportName(java.lang.String transportName)` Sets the name of an attachment file modified so that it can be associated with TNEF messages.
    `byte[]` | `toByteArray()` Gets bytes to read from this attachment.

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

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

- - ### Constructor Detail

    - #### Attachment

          public Attachment()

      Initializes a new instance of the Attachment class.

    - #### Attachment

          public Attachment(java.lang.String filePath)
                     throws java.io.IOException

      Initializes a new instance of the Attachment class based on the supplied file.
      Parameters:
        `filePath` - the file path
      Throws:
        `java.io.IOException` - Signals that an I/O exception has occurred.

    - #### Attachment

          public Attachment(java.lang.String fileName,
                            java.io.InputStream inputStream)
                     throws java.io.IOException

      Instantiates a new attachment.
      Parameters:
        `fileName` - the file name
        `inputStream` - the input stream
      Throws:
        `java.io.IOException` - Signals that an I/O exception has occurred.

    - #### Attachment

          public Attachment(java.lang.String fileName,
                            byte[] buffer)

      Initializes a new instance of the Attachment class based on the supplied byte array.
      Parameters:
        `fileName` - Attachment file name.
        `buffer` - A byte array.

  - ### Method Detail

    - #### save

          public void save(java.lang.String filePath)
                    throws java.io.IOException

      Saves this attachment to the specified file.
      Parameters:
        `filePath` - File path.
      Throws:
        `java.io.IOException` - Signals that an I/O exception has occurred.

    - #### save

          public void save(java.lang.String filePath,
                           boolean overwrite)
                    throws java.io.IOException

      Saves this attachment to the specified file.
      Parameters:
        `filePath` - File path.
        `overwrite` - True to overwrite existing file, otherwise false.
      Throws:
        `java.io.IOException` - Signals that an I/O exception has occurred.

    - #### save

          public void save(java.io.OutputStream outputStream)
                    throws java.io.IOException

      Saves this attachment to the specified stream.
      Parameters:
        `outputStream` - A stream.
      Throws:
        `java.io.IOException` - Signals that an I/O exception has occurred.

    - #### toByteArray

          public byte[] toByteArray()

      Gets bytes to read from this attachment.
      Returns:
        Attachment as a byte array.

    - #### getInputStream

          public java.io.InputStream getInputStream()

      Gets stream to read from this attachment.
      Returns:
        A stream.

    - #### getAdditionalInfo

          public byte[] getAdditionalInfo()

      Gets file type information for a non-Windows attachment.
      Returns:
        the additional info

    - #### setAdditionalInfo

          public void setAdditionalInfo(byte[] additionalInfo)

      Provides file type information for a non-Windows attachment.
      Parameters:
        `additionalInfo` - the new additional info

    - #### getContentBase

          public java.lang.String getContentBase()

      Gets the content base header of a MIME message attachment.
      Returns:
        the content base

    - #### setContentBase

          public void setContentBase(java.lang.String contentBase)

      Sets the content base header of a MIME message attachment.
      Parameters:
        `contentBase` - the new content base

    - #### getContentId

          public java.lang.String getContentId()

      Gets the content identification header of a MIME message attachment.
      Returns:
        the content id

    - #### setContentId

          public void setContentId(java.lang.String contentId)

      Sets the content identification header of a MIME message attachment.
      Parameters:
        `contentId` - the new content id

    - #### getContentLocation

          public java.lang.String getContentLocation()

      Gets the content location header of a MIME message attachment.
      Returns:
        the content location

    - #### setContentLocation

          public void setContentLocation(java.lang.String contentLocation)

      Sets the content location header of a MIME message attachment.
      Parameters:
        `contentLocation` - the new content location

    - #### getContentDisposition

          public java.lang.String getContentDisposition()

      Gets the content disposition header of a MIME message attachment.
      Returns:
        the content disposition

    - #### setContentDisposition

          public void setContentDisposition(java.lang.String contentDisposition)

      Sets the content disposition header of a MIME message attachment.
      Parameters:
        `contentDisposition` - the new content disposition

    - #### getData

          public byte[] getData()

      Gets binary attachment data.
      Returns:
        the data

    - #### setData

          public void setData(byte[] data)

      Sets binary attachment data.
      Parameters:
        `data` - the new data

    - #### getDataObject

          public byte[] getDataObject()

      Gets attachment's data as embedded object.
      Returns:
        the data object

    - #### setDataObject

          public void setDataObject(byte[] dataObject)

      Sets attachment's data as embedded object.
      Parameters:
        `dataObject` - the new data object

    - #### getEncoding

          public byte[] getEncoding()

      Gets the encoding for an attachment.
      Returns:
        the encoding

    - #### setEncoding

          public void setEncoding(byte[] encoding)

      Sets the encoding for an attachment.
      Parameters:
        `encoding` - the new encoding

    - #### getRecordKey

          public byte[] getRecordKey()

      Gets the record key for an attachment.
      Returns:
        the record key

    - #### setRecordKey

          public void setRecordKey(byte[] recordKey)

      Sets the record key for an attachment.
      Parameters:
        `recordKey` - the new record key

    - #### getExtension

          public java.lang.String getExtension()

      Gets a file name extension that indicates the document type of an attachment.
      Returns:
        the extension

    - #### setExtension

          public void setExtension(java.lang.String extension)

      Sets a file name extension that indicates the document type of an attachment.
      Parameters:
        `extension` - the new extension

    - #### getFileName

          public java.lang.String getFileName()

      Gets an attachment's base file name and extension, excluding path.
      Returns:
        the file name

    - #### setFileName

          public void setFileName(java.lang.String fileName)

      Sets an attachment's base file name and extension, excluding path.
      Parameters:
        `fileName` - the new file name

    - #### getFlags

          public AttachmentFlags getFlags()

      Gets flags for an attachment.
      Returns:
        the flags

    - #### setFlags

          public void setFlags(AttachmentFlags flags)

      Sets flags for an attachment.
      Parameters:
        `flags` - the new flags

    - #### getLongFileName

          public java.lang.String getLongFileName()

      Gets an attachment's long filename and extension, excluding path.
      Returns:
        the long file name

    - #### setLongFileName

          public void setLongFileName(java.lang.String longFileName)

      Sets an attachment's long filename and extension, excluding path.
      Parameters:
        `longFileName` - the new long file name

    - #### getLongPathName

          public java.lang.String getLongPathName()

      Gets an attachment's fully-qualified long path and filename.
      Returns:
        the long path name

    - #### setLongPathName

          public void setLongPathName(java.lang.String longPathName)

      Sets an attachment's fully-qualified long path and filename.
      Parameters:
        `longPathName` - the new long path name

    - #### getMethod

          public AttachmentMethod getMethod()

      Gets a MAPI-defined constant representing the way the contents of an attachment can be accessed.
      Returns:
        the method

    - #### setMethod

          public void setMethod(AttachmentMethod method)

      Sets a MAPI-defined constant representing the way the contents of an attachment can be accessed.
      Parameters:
        `method` - the new method

    - #### getMimeSequence

          public long getMimeSequence()

      Gets the MIME sequence number of a MIME message attachment.
      Returns:
        the mime sequence

    - #### setMimeSequence

          public void setMimeSequence(long mimeSequence)

      Sets the MIME sequence number of a MIME message attachment.
      Parameters:
        `mimeSequence` - the new mime sequence

    - #### getMimeTag

          public java.lang.String getMimeTag()

      Gets formatting information about a MIME attachment.
      Returns:
        the mime tag

    - #### setMimeTag

          public void setMimeTag(java.lang.String mimeTag)

      Sets formatting information about a MIME attachment.
      Parameters:
        `mimeTag` - the new mime tag

    - #### getPathName

          public java.lang.String getPathName()

      Gets an attachment's fully-qualified path and filename.
      Returns:
        the path name

    - #### setPathName

          public void setPathName(java.lang.String pathName)

      Sets an attachment's fully-qualified path and filename.
      Parameters:
        `pathName` - the new path name

    - #### getRendering

          public byte[] getRendering()

      Gets a metafile with rendering information for an attachment.
      Returns:
        the rendering

    - #### setRendering

          public void setRendering(byte[] rendering)

      Sets a metafile with rendering information for an attachment.
      Parameters:
        `rendering` - the new rendering

    - #### getRenderingPosition

          public long getRenderingPosition()

      Gets rendering position index.
      Returns:
        the rendering position

    - #### setRenderingPosition

          public void setRenderingPosition(long renderingPosition)

      Sets rendering position index.
      Parameters:
        `renderingPosition` - the new rendering position

    - #### getSize

          public long getSize()

      Gets attachment's size in bytes.
      Returns:
        the size

    - #### setSize

          public void setSize(long size)

      Sets attachment's size in bytes.
      Parameters:
        `size` - the new size

    - #### getTag

          public byte[] getTag()

      Gets an object identifier specifying the application that supplied an attachment.
      Returns:
        the tag

    - #### setTag

          public void setTag(byte[] tag)

      Sets an object identifier specifying the application that supplied an attachment.
      Parameters:
        `tag` - the new tag

    - #### getTransportName

          public java.lang.String getTransportName()

      Gets the name of an attachment file modified so that it can be associated with TNEF messages.
      Returns:
        the transport name

    - #### setTransportName

          public void setTransportName(java.lang.String transportName)

      Sets the name of an attachment file modified so that it can be associated with TNEF messages.
      Parameters:
        `transportName` - the new transport name

    - #### getDisplayName

          public java.lang.String getDisplayName()

      Gets the display name of the attachment.
      Returns:
        the display name

    - #### setDisplayName

          public void setDisplayName(java.lang.String displayName)

      Sets the display name of the attachment.
      Parameters:
        `displayName` - the new display name

    - #### getEmbeddedMessage

          public Message getEmbeddedMessage()

      Gets Message object if the attachment is an embedded Message.
      Returns:
        the embedded message

    - #### setEmbeddedMessage

          public void setEmbeddedMessage(Message embeddedMessage)

      Sets Message object if the attachment is an embedded Message.
      Parameters:
        `embeddedMessage` - the new embedded message

    - #### getObjectType

          public ObjectType getObjectType()

      Gets the type of the attachment.
      Returns:
        the object type

    - #### setObjectType

          public void setObjectType(ObjectType objectType)

      Sets the type of the attachment.
      Parameters:
        `objectType` - the new object type

    - #### isHidden

          public boolean isHidden()

      Gets whether an attachment is hidden from the end user.
      Returns:
        true, if is hidden

    - #### setHidden

          public void setHidden(boolean isHidden)

      Sets whether an attachment is hidden from the end user.
      Parameters:
        `isHidden` - the new hidden

    - #### isContactPhoto

          public boolean isContactPhoto()

      Gets whether this attachment is a contact photo.
      Returns:
        true, if is contact photo

    - #### setContactPhoto

          public void setContactPhoto(boolean isContactPhoto)

      Sets whether this attachment is a contact photo.
      Parameters:
        `isContactPhoto` - the new contact photo