Package de.aristaflow.adept2.model.mail
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 theMailService
. 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 theMailService
.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
contentType
The content type (MIME) of the attachment.protected String
description
The description of the attachment.protected String
inlineName
The name used in the corresponding HTML message to refer to this attachment.protected String
name
The name of the attachment.
-
Constructor Summary
Constructors Modifier Constructor Description protected
SerialisableAttachment(String name, String description)
Creates an attachment having the designated name and description.protected
SerialisableAttachment(String name, String description, boolean inline)
Creates an attachment having the designated name and description.protected
SerialisableAttachment(String name, String description, String contentType)
Creates an attachment having the designated name, description and content type (MIME).protected
SerialisableAttachment(String name, String description, String contentType, boolean inline)
Creates an attachment having the designated name, description and content type (MIME).protected
SerialisableAttachment(String name, String description, String contentType, String inlineName)
Creates an attachment having the designated name, description and content type (MIME).
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
abstract InputStream
getContent()
Gets the content of the attachment represented asInputStream
.String
getContentType()
Gets the content type (MIME) of the attachment.String
getDescription()
Gets the description of the attachment.String
getInlineName()
Gets the name used in the corresponding HTML message to refer to this attachment.String
getName()
Gets the name of the attachment.
-
-
-
Field Detail
-
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 Detail
-
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. Usenull
to not inline the attachment.
-
-
Method Detail
-
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 asInputStream
.
Note that this should only be called by the receiving service since theInputStream
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 anInputStream
, anIOException
will be thrown.
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
-