Package org.apache.axis.attachments
Class AttachmentsImpl
java.lang.Object
org.apache.axis.attachments.AttachmentsImpl
- All Implemented Interfaces:
Serializable
,Attachments
Implements the Attachment interface, via an actual Hashmap of actual
AttachmentParts.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
This is the content location as specified in SOAP with Attachments.protected static org.apache.commons.logging.Log
protected MultiPartInputStream
The actual stream to manage the multi-related input stream.protected int
The form of the attachments, whether MIME or DIME.protected SOAPPart
Field soapPart.Fields inherited from interface org.apache.axis.attachments.Attachments
CIDprefix, SEND_TYPE_DEFAULT, SEND_TYPE_DIME, SEND_TYPE_MAX, SEND_TYPE_MIME, SEND_TYPE_MTOM, SEND_TYPE_NONE, SEND_TYPE_NOTSET
-
Constructor Summary
ConstructorsConstructorDescriptionAttachmentsImpl
(Object intialContents, String contentType, String contentLocation) Construct one of these on a parent Message. -
Method Summary
Modifier and TypeMethodDescriptionaddAttachmentPart
(Part newPart) Adds an existing attachment to this list.Create a new attachment Part in this Message.createAttachmentPart
(Object datahandler) Create a new attachment Part in this Message.protected DimeMultiPart
Creates the DIME messagevoid
dispose()
dispose of the attachments and their files; do not use the object after making this call.getAttachmentByReference
(String reference) This method should look at a refernce and determine if it is a CID: or url to look for attachment.int
This is the number of attachments.This method will return all attachments as a collection.getAttachments
(MimeHeaders headers) Retrieves all theAttachmentPart
objects that have header entries that match the specified headers.long
Get the content length of the stream.Gets the content type for the whole stream.Once this method is called, attachments can only be accessed via the InputStreams.From the complex stream return the root part.int
Determine if an object is to be treated as an attchment.static int
getSendType
(String value) Determine how an object typically sent as attachments are to be represented.static String
getSendTypeString
(int value) For a given sendType value, return a string representation.boolean
isAttachment
(Object value) Determine if an object is to be treated as an attchment.void
Removes allAttachmentPart
objects that have been added to thisSOAPMessage
object.removeAttachmentPart
(String reference) This method uses getAttacmentByReference() to look for attachment.void
setAttachmentParts
(Collection parts) Add the collection of parts.void
setRootPart
(Part newRoot) Sets the root part of this multipart blockvoid
setSendType
(int sendtype) Set the format for attachments.void
Write the content to the stream.
-
Field Details
-
log
protected static org.apache.commons.logging.Log log -
soapPart
Field soapPart. -
mpartStream
The actual stream to manage the multi-related input stream. -
sendtype
protected int sendtypeThe form of the attachments, whether MIME or DIME. -
contentLocation
This is the content location as specified in SOAP with Attachments. This maybe null if the message had no Content-Location specifed.
-
-
Constructor Details
-
AttachmentsImpl
public AttachmentsImpl(Object intialContents, String contentType, String contentLocation) throws AxisFault Construct one of these on a parent Message. Should only ever be called by Message constructor!- Parameters:
intialContents
- should be anything but today only a stream is supported.contentType
- The mime content type of the stream for transports that provide it.contentLocation
-- Throws:
AxisFault
-
-
Method Details
-
removeAttachmentPart
This method uses getAttacmentByReference() to look for attachment. If attachment has been found, it will be removed from the list, and returned to the user.- Specified by:
removeAttachmentPart
in interfaceAttachments
- Parameters:
reference
- The reference that referers to an attachment.- Returns:
- The part associated with the removed attachment, or null.
- Throws:
AxisFault
-
addAttachmentPart
Adds an existing attachment to this list. Note: Passed part will be bound to this message.- Specified by:
addAttachmentPart
in interfaceAttachments
- Parameters:
newPart
- new part to add- Returns:
- Part old attachment with the same Content-ID, or null.
- Throws:
AxisFault
-
createAttachmentPart
Description copied from interface:Attachments
Create a new attachment Part in this Message. Will actually, and always, return an AttachmentPart.- Specified by:
createAttachmentPart
in interfaceAttachments
- Parameters:
datahandler
- The part that is referenced- Returns:
- a new attachment part
- Throws:
AxisFault
-
setAttachmentParts
Add the collection of parts.- Specified by:
setAttachmentParts
in interfaceAttachments
- Parameters:
parts
-- Throws:
AxisFault
-
getAttachmentByReference
This method should look at a refernce and determine if it is a CID: or url to look for attachment.
Note: if Content-Id or Content-Location headers have changed by outside code, lookup will not return proper values. In order to change these values attachment should be removed, then added again.- Specified by:
getAttachmentByReference
in interfaceAttachments
- Parameters:
reference
- The reference in the xml that referers to an attachment.- Returns:
- The part associated with the attachment.
- Throws:
AxisFault
-
getAttachments
This method will return all attachments as a collection.- Specified by:
getAttachments
in interfaceAttachments
- Returns:
- A collection of attachments.
- Throws:
AxisFault
-
getRootPart
From the complex stream return the root part. Today this is SOAP.- Specified by:
getRootPart
in interfaceAttachments
- Returns:
- the root
Part
-
setRootPart
Description copied from interface:Attachments
Sets the root part of this multipart block- Specified by:
setRootPart
in interfaceAttachments
- Parameters:
newRoot
- the new rootPart
-
getContentLength
Get the content length of the stream.- Specified by:
getContentLength
in interfaceAttachments
- Returns:
- the content length of the stream
- Throws:
AxisFault
-
createDimeMessage
Creates the DIME message- Returns:
- a DIME part
- Throws:
AxisFault
- if the part could not be built
-
writeContentToStream
Write the content to the stream.- Specified by:
writeContentToStream
in interfaceAttachments
- Parameters:
os
-- Throws:
AxisFault
-
getContentType
Gets the content type for the whole stream.- Specified by:
getContentType
in interfaceAttachments
- Returns:
- the content type for the whole stream
- Throws:
AxisFault
-
getAttachmentCount
public int getAttachmentCount()This is the number of attachments.- Specified by:
getAttachmentCount
in interfaceAttachments
- Returns:
- the number of attachments
-
isAttachment
Determine if an object is to be treated as an attchment.- Specified by:
isAttachment
in interfaceAttachments
- Parameters:
value
- the value that is to be determined if its an attachment.- Returns:
- True if value should be treated as an attchment.
-
removeAllAttachments
public void removeAllAttachments()Removes allAttachmentPart
objects that have been added to thisSOAPMessage
object.This method does not touch the SOAP part.
- Specified by:
removeAllAttachments
in interfaceAttachments
-
getAttachments
Retrieves all theAttachmentPart
objects that have header entries that match the specified headers. Note that a returned attachment could have headers in addition to those specified.- Specified by:
getAttachments
in interfaceAttachments
- Parameters:
headers
- aMimeHeaders
object containing the MIME headers for which to search- Returns:
- an iterator over all attachments that have a header that matches one of the given headers
-
createAttachmentPart
Create a new attachment Part in this Message. Will actually, and always, return an AttachmentPart.- Specified by:
createAttachmentPart
in interfaceAttachments
- Returns:
- a new attachment Part
- Throws:
AxisFault
-
setSendType
public void setSendType(int sendtype) Description copied from interface:Attachments
Set the format for attachments.- Specified by:
setSendType
in interfaceAttachments
- Parameters:
sendtype
- the format to send. SEND_TYPE_MIME for Multipart Releated Mail type attachments. SEND_TYPE_DIME for DIME type attachments.
-
getSendType
public int getSendType()Description copied from interface:Attachments
Determine if an object is to be treated as an attchment.- Specified by:
getSendType
in interfaceAttachments
- Returns:
- SEND_TYPE_MIME, SEND_TYPE_DIME, SEND_TYPE_NOTSET
-
dispose
public void dispose()dispose of the attachments and their files; do not use the object after making this call.- Specified by:
dispose
in interfaceAttachments
-
getSendType
Determine how an object typically sent as attachments are to be represented. Currently, MIME DIME and NONE are reccognised.- Parameters:
value
- a String representing a sending type, treated in a case-insensetive manner- Returns:
- an
int
send type code
-
getSendTypeString
For a given sendType value, return a string representation.- Parameters:
value
- a type code integer- Returns:
- a
String
representation ofvalue
-
getIncomingAttachmentStreams
Once this method is called, attachments can only be accessed via the InputStreams. Any other access to the attachments collection (e.g. via getAttachments()) is prohibited and will cause a IllegalStateException to be thrown.- Specified by:
getIncomingAttachmentStreams
in interfaceAttachments
- Returns:
- All of the attachment streams.
-