org.apache.axis.attachments

Class AttachmentPart

public class AttachmentPart extends AttachmentPart implements Part

An attachment part.
Field Summary
protected static Loglog
Field log
Constructor Summary
AttachmentPart()
Bulds a new AttachmentPart.
AttachmentPart(DataHandler dh)
Bulds a new AttachmentPart with a DataHandler.
Method Summary
voidaddMimeHeader(String header, String value)
Add the specified MIME header, as per JAXM.
voidclearContent()
Clears out the content of this AttachmentPart object.
voiddetachAttachmentFile()
Detach the attachment file from this class, so it is not cleaned up.
voiddispose()
when an attachment part is disposed, any associated files are deleted, and the datahandler itself nulled.
protected voidfinalize()
On death, we clean up our file.
DataHandlergetActivationDataHandler()
Get the data handler.
IteratorgetAllMimeHeaders()
StringgetAttachmentFile()
Get the filename of this attachment.
ObjectgetContent()
Gets the content of this AttachmentPart object as a Java object.
StringgetContentId()
StringgetContentIdRef()
Content ID.
StringgetContentLocation()
StringgetContentType()
getContentType
DataHandlergetDataHandler()
Gets the DataHandler object for this AttachmentPart object.
StringgetFirstMimeHeader(String header)
Get the specified MIME header.
IteratorgetMatchingMimeHeaders(String[] match)
String[]getMimeHeader(String name)
Gets all the values of the header identified by the given String.
IteratorgetNonMatchingMimeHeaders(String[] match)
intgetSize()
Returns the number of bytes in this AttachmentPart object.
booleanmatches(MimeHeaders headers)
check if this Part's mimeheaders matches the one passed in.
voidremoveAllMimeHeaders()
Removes all the MIME header entries.
voidremoveMimeHeader(String header)
Removes all MIME headers that match the given name.
protected voidsetAttachmentFile(String path)
Set the filename of this attachment part.
voidsetContent(Object object, String contentType)
Sets the content of this attachment part to that of the given Object and sets the value of the Content-Type header to the given type.
voidsetContentId(String newCid)
voidsetContentLocation(String loc)
voidsetDataHandler(DataHandler datahandler)
Sets the given DataHandler object as the data handler for this AttachmentPart object.
voidsetMimeHeader(String name, String value)
Changes the first header entry that matches the given name to the given value, adding a new header if no existing header matches.

Field Detail

log

protected static Log log
Field log

Constructor Detail

AttachmentPart

public AttachmentPart()
Bulds a new AttachmentPart.

AttachmentPart

public AttachmentPart(DataHandler dh)
Bulds a new AttachmentPart with a DataHandler.

Parameters: dh the DataHandler

Method Detail

addMimeHeader

public void addMimeHeader(String header, String value)
Add the specified MIME header, as per JAXM.

Parameters: header value

clearContent

public void clearContent()
Clears out the content of this AttachmentPart object. The MIME header portion is left untouched.

detachAttachmentFile

public void detachAttachmentFile()
Detach the attachment file from this class, so it is not cleaned up. This has the side-effect of making subsequent calls to getAttachmentFile() return null.

dispose

public void dispose()
when an attachment part is disposed, any associated files are deleted, and the datahandler itself nulled. The object is no longer completely usable, at this point

finalize

protected void finalize()
On death, we clean up our file.

Throws: Throwable if anything went wrong during finalization

getActivationDataHandler

public DataHandler getActivationDataHandler()
Get the data handler.

Returns: the activation DataHandler

getAllMimeHeaders

public Iterator getAllMimeHeaders()

getAttachmentFile

public String getAttachmentFile()
Get the filename of this attachment.

Returns: the filename or null for an uncached file

getContent

public Object getContent()
Gets the content of this AttachmentPart object as a Java object. The type of the returned Java object depends on (1) the DataContentHandler object that is used to interpret the bytes and (2) the Content-Type given in the header.

For the MIME content types "text/plain", "text/html" and "text/xml", the DataContentHandler object does the conversions to and from the Java types corresponding to the MIME types. For other MIME types,the DataContentHandler object can return an InputStream object that contains the content data as raw bytes.

A JAXM-compliant implementation must, as a minimum, return a java.lang.String object corresponding to any content stream with a Content-Type value of text/plain and a javax.xml.transform.StreamSource object corresponding to a content stream with a Content-Type value of text/xml. For those content types that an installed DataContentHandler object does not understand, the DataContentHandler object is required to return a java.io.InputStream object with the raw bytes.

Returns: a Java object with the content of this AttachmentPart object

Throws: SOAPException if there is no content set into this AttachmentPart object or if there was a data transformation error

getContentId

public String getContentId()

getContentIdRef

public String getContentIdRef()
Content ID.

Returns: the contentId reference value that should be used directly as an href in a SOAP element to reference this attachment. Not part of JAX-RPC, JAX-M, SAAJ, etc.

getContentLocation

public String getContentLocation()

getContentType

public String getContentType()
getContentType

Returns: content type

getDataHandler

public DataHandler getDataHandler()
Gets the DataHandler object for this AttachmentPart object.

Returns: the DataHandler object associated with this AttachmentPart object

Throws: SOAPException if there is no data in this AttachmentPart object

getFirstMimeHeader

public String getFirstMimeHeader(String header)
Get the specified MIME header.

Parameters: header

Returns:

getMatchingMimeHeaders

public Iterator getMatchingMimeHeaders(String[] match)

getMimeHeader

public String[] getMimeHeader(String name)
Gets all the values of the header identified by the given String.

Parameters: name the name of the header; example: "Content-Type"

Returns: a String array giving the value for the specified header

See Also: setMimeHeader(java.lang.String, java.lang.String)

getNonMatchingMimeHeaders

public Iterator getNonMatchingMimeHeaders(String[] match)

getSize

public int getSize()
Returns the number of bytes in this AttachmentPart object.

Returns: the size of this AttachmentPart object in bytes or -1 if the size cannot be determined

Throws: SOAPException if the content of this attachment is corrupted of if there was an exception while trying to determine the size.

matches

public boolean matches(MimeHeaders headers)
check if this Part's mimeheaders matches the one passed in. TODO: Am not sure about the logic.

Parameters: headers the MimeHeaders to check

Returns: true if all header name, values in headers are found, false otherwise

removeAllMimeHeaders

public void removeAllMimeHeaders()
Removes all the MIME header entries.

removeMimeHeader

public void removeMimeHeader(String header)
Removes all MIME headers that match the given name.

Parameters: header - the string name of the MIME header/s to be removed

setAttachmentFile

protected void setAttachmentFile(String path)
Set the filename of this attachment part.

Parameters: path the new file path

setContent

public void setContent(Object object, String contentType)
Sets the content of this attachment part to that of the given Object and sets the value of the Content-Type header to the given type. The type of the Object should correspond to the value given for the Content-Type. This depends on the particular set of DataContentHandler objects in use.

Parameters: object the Java object that makes up the content for this attachment part contentType the MIME string that specifies the type of the content

Throws: java.lang.IllegalArgumentException if the contentType does not match the type of the content object, or if there was no DataContentHandler object for this content object

See Also: getContent()

setContentId

public void setContentId(String newCid)

setContentLocation

public void setContentLocation(String loc)

setDataHandler

public void setDataHandler(DataHandler datahandler)
Sets the given DataHandler object as the data handler for this AttachmentPart object. Typically, on an incoming message, the data handler is automatically set. When a message is being created and populated with content, the setDataHandler method can be used to get data from various data sources into the message.

Parameters: datahandler DataHandler object to be set

Throws: java.lang.IllegalArgumentException if there was a problem with the specified DataHandler object

setMimeHeader

public void setMimeHeader(String name, String value)
Changes the first header entry that matches the given name to the given value, adding a new header if no existing header matches. This method also removes all matching headers but the first.

Note that RFC822 headers can only contain US-ASCII characters.

Parameters: name a String giving the name of the header for which to search value a String giving the value to be set for the header whose name matches the given name

Throws: java.lang.IllegalArgumentException if there was a problem with the specified mime header name or value

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.