<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_08) on Sat Apr 22 18:56:43 PDT 2006 -->
<TITLE>
AttachmentPart (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.attachments.AttachmentPart class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="AttachmentPart (Axis API)";
}
</SCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AttachmentPart.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AttachmentPart.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis.attachments</FONT>
<BR>
Class AttachmentPart</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">javax.xml.soap.AttachmentPart</A>
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.attachments.AttachmentPart</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>, java.io.Serializable</DD>
</DL>
<HR>
<DL>
<DT>public class <B>AttachmentPart</B><DT>extends <A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A><DT>implements <A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></DL>

<P>
An attachment part.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.apache.axis.attachments.AttachmentPart">Serialized Form</A></DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;org.apache.commons.logging.Log</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#log">log</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field log</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#AttachmentPart()">AttachmentPart</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bulds a new <code>AttachmentPart</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#AttachmentPart(javax.activation.DataHandler)">AttachmentPart</A></B>(javax.activation.DataHandler&nbsp;dh)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bulds a new <code>AttachmentPart</code> with a <code>DataHandler</code>.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#addMimeHeader(java.lang.String, java.lang.String)">addMimeHeader</A></B>(java.lang.String&nbsp;header,
              java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the specified MIME header, as per JAXM.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#clearContent()">clearContent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears out the content of this <CODE>
 AttachmentPart</CODE> object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#detachAttachmentFile()">detachAttachmentFile</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Detach the attachment file from this class, so it is not cleaned up.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#dispose()">dispose</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when an attachment part is disposed, any associated files
 are deleted, and the datahandler itself nulled.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#finalize()">finalize</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On death, we clean up our file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.activation.DataHandler</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getActivationDataHandler()">getActivationDataHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the data handler.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Iterator</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getAllMimeHeaders()">getAllMimeHeaders</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves all the headers for this <CODE>
 AttachmentPart</CODE> object as an iterator over the <CODE>
 MimeHeader</CODE> objects.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getAttachmentFile()">getAttachmentFile</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the filename of this attachment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContent()">getContent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the content of this <CODE>AttachmentPart</CODE> object
   as a Java object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContentId()">getContentId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the content ID.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContentIdRef()">getContentIdRef</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Content ID.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContentLocation()">getContentLocation</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the content location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContentType()">getContentType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getContentType</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.activation.DataHandler</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getDataHandler()">getDataHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the <CODE>DataHandler</CODE> object for this <CODE>
 AttachmentPart</CODE> object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getFirstMimeHeader(java.lang.String)">getFirstMimeHeader</A></B>(java.lang.String&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the specified MIME header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Iterator</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getMatchingMimeHeaders(java.lang.String[])">getMatchingMimeHeaders</A></B>(java.lang.String[]&nbsp;match)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an <code>Iterator</code> over all headers that match any item in
 <code>match</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getMimeHeader(java.lang.String)">getMimeHeader</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets all the values of the header identified by the given
 <CODE>String</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Iterator</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getNonMatchingMimeHeaders(java.lang.String[])">getNonMatchingMimeHeaders</A></B>(java.lang.String[]&nbsp;match)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all headers that do not match.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getSize()">getSize</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of bytes in this <CODE>
 AttachmentPart</CODE> object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#matches(javax.xml.soap.MimeHeaders)">matches</A></B>(<A HREF="../../../../javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>&nbsp;headers)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check if this Part's mimeheaders matches the one passed in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#removeAllMimeHeaders()">removeAllMimeHeaders</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all the MIME header entries.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#removeMimeHeader(java.lang.String)">removeMimeHeader</A></B>(java.lang.String&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all MIME headers that match the given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setAttachmentFile(java.lang.String)">setAttachmentFile</A></B>(java.lang.String&nbsp;path)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the filename of this attachment part.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setContent(java.lang.Object, java.lang.String)">setContent</A></B>(java.lang.Object&nbsp;object,
           java.lang.String&nbsp;contentType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the content of this attachment part to that of the
 given <CODE>Object</CODE> and sets the value of the <CODE>
 Content-Type</CODE> header to the given type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setContentId(java.lang.String)">setContentId</A></B>(java.lang.String&nbsp;newCid)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Content-Id of this part.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setContentLocation(java.lang.String)">setContentLocation</A></B>(java.lang.String&nbsp;loc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set content location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setDataHandler(javax.activation.DataHandler)">setDataHandler</A></B>(javax.activation.DataHandler&nbsp;datahandler)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the given <CODE>DataHandler</CODE> object as the
 data handler for this <CODE>AttachmentPart</CODE> object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setMimeHeader(java.lang.String, java.lang.String)">setMimeHeader</A></B>(java.lang.String&nbsp;name,
              java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Changes the first header entry that matches the given name
   to the given value, adding a new header if no existing
   header matches.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_javax.xml.soap.AttachmentPart"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class javax.xml.soap.<A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setContentType(java.lang.String)">setContentType</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="log"><!-- --></A><H3>
log</H3>
<PRE>
protected static org.apache.commons.logging.Log <B>log</B></PRE>
<DL>
<DD>Field log
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="AttachmentPart()"><!-- --></A><H3>
AttachmentPart</H3>
<PRE>
public <B>AttachmentPart</B>()</PRE>
<DL>
<DD>Bulds a new <code>AttachmentPart</code>.
<P>
</DL>
<HR>

<A NAME="AttachmentPart(javax.activation.DataHandler)"><!-- --></A><H3>
AttachmentPart</H3>
<PRE>
public <B>AttachmentPart</B>(javax.activation.DataHandler&nbsp;dh)</PRE>
<DL>
<DD>Bulds a new <code>AttachmentPart</code> with a <code>DataHandler</code>.
<P>
<DT><B>Parameters:</B><DD><CODE>dh</CODE> - the <code>DataHandler</code></DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="finalize()"><!-- --></A><H3>
finalize</H3>
<PRE>
protected void <B>finalize</B>()
                 throws java.lang.Throwable</PRE>
<DL>
<DD>On death, we clean up our file.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.lang.Throwable</CODE> - if anything went wrong during finalization</DL>
</DD>
</DL>
<HR>

<A NAME="getActivationDataHandler()"><!-- --></A><H3>
getActivationDataHandler</H3>
<PRE>
public javax.activation.DataHandler <B>getActivationDataHandler</B>()</PRE>
<DL>
<DD>Get the data handler.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the activation <code>DataHandler</code></DL>
</DD>
</DL>
<HR>

<A NAME="getContentType()"><!-- --></A><H3>
getContentType</H3>
<PRE>
public java.lang.String <B>getContentType</B>()</PRE>
<DL>
<DD>getContentType
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getContentType()">getContentType</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getContentType()">getContentType</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>content type</DL>
</DD>
</DL>
<HR>

<A NAME="addMimeHeader(java.lang.String, java.lang.String)"><!-- --></A><H3>
addMimeHeader</H3>
<PRE>
public void <B>addMimeHeader</B>(java.lang.String&nbsp;header,
                          java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Add the specified MIME header, as per JAXM.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#addMimeHeader(java.lang.String, java.lang.String)">addMimeHeader</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#addMimeHeader(java.lang.String, java.lang.String)">addMimeHeader</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - <DD><CODE>value</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getFirstMimeHeader(java.lang.String)"><!-- --></A><H3>
getFirstMimeHeader</H3>
<PRE>
public java.lang.String <B>getFirstMimeHeader</B>(java.lang.String&nbsp;header)</PRE>
<DL>
<DD>Get the specified MIME header.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="matches(javax.xml.soap.MimeHeaders)"><!-- --></A><H3>
matches</H3>
<PRE>
public boolean <B>matches</B>(<A HREF="../../../../javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>&nbsp;headers)</PRE>
<DL>
<DD>check if this Part's mimeheaders matches the one passed in.
 TODO: Am not sure about the logic.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>headers</CODE> - the <code>MimeHeaders</code> to check
<DT><B>Returns:</B><DD>true if all header name, values in <code>headers</code> are
              found, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="getContentLocation()"><!-- --></A><H3>
getContentLocation</H3>
<PRE>
public java.lang.String <B>getContentLocation</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Get the content location.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getContentLocation()">getContentLocation</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getContentLocation()">getContentLocation</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a <CODE>String</CODE> giving the value of the
     "Content-Location" header or <CODE>null</CODE> if there
     is none</DL>
</DD>
</DL>
<HR>

<A NAME="setContentLocation(java.lang.String)"><!-- --></A><H3>
setContentLocation</H3>
<PRE>
public void <B>setContentLocation</B>(java.lang.String&nbsp;loc)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Set content location.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#setContentLocation(java.lang.String)">setContentLocation</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setContentLocation(java.lang.String)">setContentLocation</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>loc</CODE> - a <CODE>String</CODE>
     giving the value of the "Content-Location" header</DL>
</DD>
</DL>
<HR>

<A NAME="setContentId(java.lang.String)"><!-- --></A><H3>
setContentId</H3>
<PRE>
public void <B>setContentId</B>(java.lang.String&nbsp;newCid)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Sets Content-Id of this part.
  already defined.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#setContentId(java.lang.String)">setContentId</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setContentId(java.lang.String)">setContentId</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>newCid</CODE> - a <CODE>String</CODE> giving
     the value of the "Content-Id" header<DT><B>See Also:</B><DD><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getContentId()"><CODE>getContentId()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getContentId()"><!-- --></A><H3>
getContentId</H3>
<PRE>
public java.lang.String <B>getContentId</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Get the content ID.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getContentId()">getContentId</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getContentId()">getContentId</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a <CODE>String</CODE> giving the value of the
     "Content-Id" header or <CODE>null</CODE> if there is
     none<DT><B>See Also:</B><DD><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setContentId(java.lang.String)"><CODE>setContentId(java.lang.String)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getMatchingMimeHeaders(java.lang.String[])"><!-- --></A><H3>
getMatchingMimeHeaders</H3>
<PRE>
public java.util.Iterator <B>getMatchingMimeHeaders</B>(java.lang.String[]&nbsp;match)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Get an <code>Iterator</code> over all headers that match any item in
 <code>match</code>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getMatchingMimeHeaders(java.lang.String[])">getMatchingMimeHeaders</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getMatchingMimeHeaders(java.lang.String[])">getMatchingMimeHeaders</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>match</CODE> - a <CODE>String</CODE> array with
     the name(s) of the MIME headers to be returned
<DT><B>Returns:</B><DD>all of the MIME headers that match one of the names
     in the given array as an <CODE>Iterator</CODE>
     object</DL>
</DD>
</DL>
<HR>

<A NAME="getNonMatchingMimeHeaders(java.lang.String[])"><!-- --></A><H3>
getNonMatchingMimeHeaders</H3>
<PRE>
public java.util.Iterator <B>getNonMatchingMimeHeaders</B>(java.lang.String[]&nbsp;match)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></B></DD>
<DD>Get all headers that do not match.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getNonMatchingMimeHeaders(java.lang.String[])">getNonMatchingMimeHeaders</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getNonMatchingMimeHeaders(java.lang.String[])">getNonMatchingMimeHeaders</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>match</CODE> - a <CODE>String</CODE> array with
     the name(s) of the MIME headers not to be returned
<DT><B>Returns:</B><DD>all of the MIME headers in this <CODE>
     AttachmentPart</CODE> object except those that match one
     of the names in the given array. The nonmatching MIME
     headers are returned as an <CODE>Iterator</CODE>
     object.</DL>
</DD>
</DL>
<HR>

<A NAME="getAllMimeHeaders()"><!-- --></A><H3>
getAllMimeHeaders</H3>
<PRE>
public java.util.Iterator <B>getAllMimeHeaders</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></B></DD>
<DD>Retrieves all the headers for this <CODE>
 AttachmentPart</CODE> object as an iterator over the <CODE>
 MimeHeader</CODE> objects.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getAllMimeHeaders()">getAllMimeHeaders</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>an <CODE>Iterator</CODE> object with all of the Mime
     headers for this <CODE>AttachmentPart</CODE> object</DL>
</DD>
</DL>
<HR>

<A NAME="setMimeHeader(java.lang.String, java.lang.String)"><!-- --></A><H3>
setMimeHeader</H3>
<PRE>
public void <B>setMimeHeader</B>(java.lang.String&nbsp;name,
                          java.lang.String&nbsp;value)</PRE>
<DL>
<DD>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.

   <P>Note that RFC822 headers can only contain US-ASCII
   characters.</P>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setMimeHeader(java.lang.String, java.lang.String)">setMimeHeader</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - a <CODE>String</CODE> giving the
     name of the header for which to search<DD><CODE>value</CODE> - a <CODE>String</CODE> giving the
     value to be set for the header whose name matches the
     given name
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if
     there was a problem with the specified mime header name
     or value</DL>
</DD>
</DL>
<HR>

<A NAME="removeAllMimeHeaders()"><!-- --></A><H3>
removeAllMimeHeaders</H3>
<PRE>
public void <B>removeAllMimeHeaders</B>()</PRE>
<DL>
<DD>Removes all the MIME header entries.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#removeAllMimeHeaders()">removeAllMimeHeaders</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeMimeHeader(java.lang.String)"><!-- --></A><H3>
removeMimeHeader</H3>
<PRE>
public void <B>removeMimeHeader</B>(java.lang.String&nbsp;header)</PRE>
<DL>
<DD>Removes all MIME headers that match the given name.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#removeMimeHeader(java.lang.String)">removeMimeHeader</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - - the string name of the MIME
     header/s to be removed</DL>
</DD>
</DL>
<HR>

<A NAME="getDataHandler()"><!-- --></A><H3>
getDataHandler</H3>
<PRE>
public javax.activation.DataHandler <B>getDataHandler</B>()
                                            throws <A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></PRE>
<DL>
<DD>Gets the <CODE>DataHandler</CODE> object for this <CODE>
 AttachmentPart</CODE> object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getDataHandler()">getDataHandler</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the <CODE>DataHandler</CODE> object associated with
     this <CODE>AttachmentPart</CODE> object
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></CODE> - if there is
     no data in this <CODE>AttachmentPart</CODE> object</DL>
</DD>
</DL>
<HR>

<A NAME="setDataHandler(javax.activation.DataHandler)"><!-- --></A><H3>
setDataHandler</H3>
<PRE>
public void <B>setDataHandler</B>(javax.activation.DataHandler&nbsp;datahandler)</PRE>
<DL>
<DD>Sets the given <CODE>DataHandler</CODE> object as the
 data handler for this <CODE>AttachmentPart</CODE> object.
 Typically, on an incoming message, the data handler is
 automatically set. When a message is being created and
 populated with content, the <CODE>setDataHandler</CODE>
 method can be used to get data from various data sources into
 the message.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setDataHandler(javax.activation.DataHandler)">setDataHandler</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>datahandler</CODE> - <CODE>DataHandler</CODE> object to
     be set
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if
     there was a problem with the specified <CODE>
     DataHandler</CODE> object</DL>
</DD>
</DL>
<HR>

<A NAME="getContent()"><!-- --></A><H3>
getContent</H3>
<PRE>
public java.lang.Object <B>getContent</B>()
                            throws <A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></PRE>
<DL>
<DD>Gets the content of this <CODE>AttachmentPart</CODE> object
   as a Java object. The type of the returned Java object
   depends on (1) the <CODE>DataContentHandler</CODE> object
   that is used to interpret the bytes and (2) the <CODE>
   Content-Type</CODE> given in the header.

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

   <P>A JAXM-compliant implementation must, as a minimum,
   return a <CODE>java.lang.String</CODE> object corresponding
   to any content stream with a <CODE>Content-Type</CODE>
   value of <CODE>text/plain</CODE> and a <CODE>
   javax.xml.transform.StreamSource</CODE> object
   corresponding to a content stream with a <CODE>
   Content-Type</CODE> value of <CODE>text/xml</CODE>. For
   those content types that an installed <CODE>
   DataContentHandler</CODE> object does not understand, the
   <CODE>DataContentHandler</CODE> object is required to
   return a <CODE>java.io.InputStream</CODE> object with the
   raw bytes.</P>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getContent()">getContent</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a Java object with the content of this <CODE>
     AttachmentPart</CODE> object
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></CODE> - if there is no content set
     into this <CODE>AttachmentPart</CODE> object or if there
     was a data transformation error</DL>
</DD>
</DL>
<HR>

<A NAME="setContent(java.lang.Object, java.lang.String)"><!-- --></A><H3>
setContent</H3>
<PRE>
public void <B>setContent</B>(java.lang.Object&nbsp;object,
                       java.lang.String&nbsp;contentType)</PRE>
<DL>
<DD>Sets the content of this attachment part to that of the
 given <CODE>Object</CODE> and sets the value of the <CODE>
 Content-Type</CODE> header to the given type. The type of the
 <CODE>Object</CODE> should correspond to the value given for
 the <CODE>Content-Type</CODE>. This depends on the particular
 set of <CODE>DataContentHandler</CODE> objects in use.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#setContent(java.lang.Object, java.lang.String)">setContent</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>object</CODE> - the Java object that makes up
     the content for this attachment part<DD><CODE>contentType</CODE> - the MIME string that
     specifies the type of the content
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if
     the contentType does not match the type of the content
     object, or if there was no <CODE>
     DataContentHandler</CODE> object for this content
     object<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#getContent()"><CODE>getContent()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="clearContent()"><!-- --></A><H3>
clearContent</H3>
<PRE>
public void <B>clearContent</B>()</PRE>
<DL>
<DD>Clears out the content of this <CODE>
 AttachmentPart</CODE> object. The MIME header portion is left
 untouched.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#clearContent()">clearContent</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSize()"><!-- --></A><H3>
getSize</H3>
<PRE>
public int <B>getSize</B>()
            throws <A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></PRE>
<DL>
<DD>Returns the number of bytes in this <CODE>
 AttachmentPart</CODE> object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getSize()">getSize</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the size of this <CODE>AttachmentPart</CODE> object
     in bytes or -1 if the size cannot be determined
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A></CODE> - if the content of this
     attachment is corrupted of if there was an exception
     while trying to determine the size.</DL>
</DD>
</DL>
<HR>

<A NAME="getMimeHeader(java.lang.String)"><!-- --></A><H3>
getMimeHeader</H3>
<PRE>
public java.lang.String[] <B>getMimeHeader</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Gets all the values of the header identified by the given
 <CODE>String</CODE>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getMimeHeader(java.lang.String)">getMimeHeader</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html#getMimeHeader(java.lang.String)">getMimeHeader</A></CODE> in class <CODE><A HREF="../../../../javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the header; example:
     "Content-Type"
<DT><B>Returns:</B><DD>a <CODE>String</CODE> array giving the value for the
     specified header<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/attachments/AttachmentPart.html#setMimeHeader(java.lang.String, java.lang.String)"><CODE>setMimeHeader(java.lang.String, java.lang.String)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getContentIdRef()"><!-- --></A><H3>
getContentIdRef</H3>
<PRE>
public java.lang.String <B>getContentIdRef</B>()</PRE>
<DL>
<DD>Content ID.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/axis/Part.html#getContentIdRef()">getContentIdRef</A></CODE> in interface <CODE><A HREF="../../../../org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A></CODE></DL>
</DD>
<DD><DL>

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

<A NAME="setAttachmentFile(java.lang.String)"><!-- --></A><H3>
setAttachmentFile</H3>
<PRE>
protected void <B>setAttachmentFile</B>(java.lang.String&nbsp;path)</PRE>
<DL>
<DD>Set the filename of this attachment part.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>path</CODE> - the new file path</DL>
</DD>
</DL>
<HR>

<A NAME="detachAttachmentFile()"><!-- --></A><H3>
detachAttachmentFile</H3>
<PRE>
public void <B>detachAttachmentFile</B>()</PRE>
<DL>
<DD>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 <code>null</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAttachmentFile()"><!-- --></A><H3>
getAttachmentFile</H3>
<PRE>
public java.lang.String <B>getAttachmentFile</B>()</PRE>
<DL>
<DD>Get the filename of this attachment.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the filename or null for an uncached file</DL>
</DD>
</DL>
<HR>

<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
public void <B>dispose</B>()</PRE>
<DL>
<DD>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
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AttachmentPart.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AttachmentPart.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © 2005 Apache Web Services Project. All Rights Reserved.
</BODY>
</HTML>
