Class SerialisableAttachment

java.lang.Object
de.aristaflow.adept2.model.mail.SerialisableAttachment
All Implemented Interfaces:
Closeable, Serializable, AutoCloseable
Direct Known Subclasses:
ByteArrayAttachment, DataSourceAttachment, UDTAttachment, URLAttachment

public abstract class SerialisableAttachment extends Object implements Serializable, Closeable
Attachments for sending via the MailService. Mail attachments have a name, a description, a content type (MIME) and binary content. The content can be represented arbitrarily.
Note that this attachment needs to be serialisable (which also applies to the subclasses). Otherwise it cannot be used with the MailService.
See Also:
  • Field Details

    • name

      protected final String name
      The name of the attachment.
    • description

      protected final String description
      The description of the attachment.
    • contentType

      protected final String contentType
      The content type (MIME) of the attachment.
    • inlineName

      protected final String inlineName
      The name used in the corresponding HTML message to refer to this attachment. This name will be replaced within the message by the corresponding referenced to this attachment. null if the attachment should not be inlined.
  • Constructor Details

    • SerialisableAttachment

      protected SerialisableAttachment(String name, String description)
      Creates an attachment having the designated name and description. The content type is set to "application/octet-stream".
      Parameters:
      name - The name of the attachment.
      description - The description of the attachment.
    • SerialisableAttachment

      protected SerialisableAttachment(String name, String description, boolean inline)
      Creates an attachment having the designated name and description. The content type is set to "application/octet-stream".
      Parameters:
      name - The name of the attachment.
      description - The description of the attachment.
      inline - Whether to inline this attachment in case of an HTML message using the designated name.
    • SerialisableAttachment

      protected SerialisableAttachment(String name, String description, String contentType)
      Creates an attachment having the designated name, description and content type (MIME).
      Parameters:
      name - The name of the attachment.
      description - The description of the attachment.
      contentType - The content type (MIME) of the attachment.
    • SerialisableAttachment

      protected SerialisableAttachment(String name, String description, String contentType, boolean inline)
      Creates an attachment having the designated name, description and content type (MIME).
      Parameters:
      name - The name of the attachment.
      description - The description of the attachment.
      contentType - The content type (MIME) of the attachment.
      inline - Whether to inline this attachment in case of an HTML message using the designated name.
    • SerialisableAttachment

      protected SerialisableAttachment(String name, String description, String contentType, String inlineName)
      Creates an attachment having the designated name, description and content type (MIME).
      Parameters:
      name - The name of the attachment.
      description - The description of the attachment.
      contentType - The content type (MIME) of the attachment.
      inlineName - The name used in the corresponding HTML message to refer to this attachment to be inlined. Use null to not inline the attachment.
  • Method Details

    • getName

      public String getName()
      Gets the name of the attachment.
      Returns:
      The name of the attachment.
    • getDescription

      public String getDescription()
      Gets the description of the attachment.
      Returns:
      The description of the attachment.
    • getContentType

      public String getContentType()
      Gets the content type (MIME) of the attachment.
      Returns:
      The content type (MIME) of the attachment.
    • getInlineName

      public String getInlineName()
      Gets the name used in the corresponding HTML message to refer to this attachment. This name will be replaced within the message by the corresponding referenced to this attachment. null if the attachment should not be inlined.
      Returns:
      The name used in the corresponding HTML message to refer to this attachment to be inlined, null to not inline the attachment.
    • getContent

      public abstract InputStream getContent() throws IOException
      Gets the content of the attachment represented as InputStream.
      Note that this should only be called by the receiving service since the InputStream cannot be serialised.
      Returns:
      The actual data of the attachment. The caller is responsible for closing.
      Throws:
      IOException - If there are problems retrieving the content, for instance converting the transferred serialisable data to an InputStream, an IOException will be thrown.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException