<!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:49 PDT 2006 -->
<TITLE>
Emitter (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.wsdl.fromJava.Emitter class">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Emitter (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/Emitter.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/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava"><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="Emitter.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.wsdl.fromJava</FONT>
<BR>
Class Emitter</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.wsdl.fromJava.Emitter</B>
</PRE>
<HR>
<DL>
<DT>public class <B>Emitter</B><DT>extends java.lang.Object</DL>

<P>
This class emits WSDL from Java classes.  It is used by the ?WSDL
 Axis browser function and Java2WSDL commandline utility.
 See Java2WSDL and Java2WSDLFactory for more information.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Glen Daniels (gdaniels@apache.org), Rich Scheuerle (scheu@us.ibm.com)</DD>
</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/wsdl/fromJava/Emitter.html#log">log</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field log</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_ALL">MODE_ALL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field MODE_ALL</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_DOC_WRAPPED">MODE_DOC_WRAPPED</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEPRECATED - Indicates style=wrapped use=literal</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_DOCUMENT">MODE_DOCUMENT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEPRECATED - Indicates style=document use=literal</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_IMPLEMENTATION">MODE_IMPLEMENTATION</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field MODE_IMPLEMENTATION</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_INTERFACE">MODE_INTERFACE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field MODE_INTERFACE</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#MODE_RPC">MODE_RPC</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEPRECATED - Indicates style=rpc use=encoded</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#standardTypes">standardTypes</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field standardTypes</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#types">types</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field types</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/wsdl/fromJava/Emitter.html#Emitter()">Emitter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct Emitter.</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>protected &nbsp;javax.wsdl.Definition</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#createDefinition()">createDefinition</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a Definition from the input wsdl file or create
 a new Definition</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#createDocumentationElement(java.lang.String)">createDocumentationElement</A></B>(java.lang.String&nbsp;documentation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a documentation element</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#createMessageName(javax.wsdl.Definition, java.lang.String)">createMessageName</A></B>(javax.wsdl.Definition&nbsp;def,
                  java.lang.String&nbsp;methodName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method createMessageName</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#createTypes(javax.wsdl.Definition)">createTypes</A></B>(javax.wsdl.Definition&nbsp;def)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a Types object and load the input wsdl types</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#emit(int)">emit</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a WSDL document for a given <code>Class</code>.</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/wsdl/fromJava/Emitter.html#emit(java.lang.String)">emit</A></B>(java.lang.String&nbsp;filename)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a complete WSDL document for a given <code>Class</code></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/wsdl/fromJava/Emitter.html#emit(java.lang.String, int)">emit</A></B>(java.lang.String&nbsp;filename,
     int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a WSDL document for a given <code>Class</code>.</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/wsdl/fromJava/Emitter.html#emit(java.lang.String, java.lang.String)">emit</A></B>(java.lang.String&nbsp;filename1,
     java.lang.String&nbsp;filename2)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates WSDL documents for a given <code>Class</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/wsdl/fromJava/Emitter.html#emitToString(int)">emitToString</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generates a String containing the WSDL for a given <code>Class</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getAllowedMethods()">getAllowedMethods</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a vector of methods to export</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/wsdl/fromJava/Emitter.html#getBindingName()">getBindingName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the binding name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getCls()">getCls</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <code>Class</code> to export</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getDefaultTypeMapping()">getDefaultTypeMapping</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use getTypeMappingRegistry instead</I></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/wsdl/fromJava/Emitter.html#getDescription()">getDescription</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the service description</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getDisallowedMethods()">getDisallowedMethods</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return list of methods that should not be exported</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getExtraClasses()">getExtraClasses</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the list of extra classes that the emitter will produce WSDL for.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getImplCls()">getImplCls</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the implementation <code>Class</code> if set</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/wsdl/fromJava/Emitter.html#getImplNamespace()">getImplNamespace</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the implementation namespace</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.wsdl.Definition</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getImplWSDL()">getImplWSDL</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get implementation WSDL <code>Definition</code> for the
 current configuration parameters</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/wsdl/fromJava/Emitter.html#getImportUrl()">getImportUrl</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the interface import location URL</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/wsdl/fromJava/Emitter.html#getInputSchema()">getInputSchema</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/wsdl/fromJava/Emitter.html#getInputWSDL()">getInputWSDL</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the name of the input WSDL</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/wsdl/fromJava/Emitter.html#getIntfNamespace()">getIntfNamespace</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the interface namespace</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.wsdl.Definition</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getIntfWSDL()">getIntfWSDL</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a interface WSDL <code>Definition</code> for the
 current configuration parameters</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/wsdl/fromJava/Emitter.html#getLocationUrl()">getLocationUrl</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the service endpoint URL</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/wsdl/fromJava/Emitter.html#getMode()">getMode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>(use getStyle and getUse)</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Map</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getNamespaceMap()">getNamespaceMap</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the packagename to namespace map</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/wsdl/fromJava/Emitter.html#getPortTypeName()">getPortTypeName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the portType name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.HashMap</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getQName2ClassMap()">getQName2ClassMap</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the type qname to java type mapping</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getRequestQName(org.apache.axis.description.OperationDesc)">getRequestQName</A></B>(<A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method getRequestQName</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getResponseQName(org.apache.axis.description.OperationDesc)">getResponseQName</A></B>(<A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method getResponseQName</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getServiceDesc()">getServiceDesc</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method getServiceDesc</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/wsdl/fromJava/Emitter.html#getServiceElementName()">getServiceElementName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the service element name</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/wsdl/fromJava/Emitter.html#getServicePortName()">getServicePortName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the String representation of the service port name</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/wsdl/fromJava/Emitter.html#getSoapAction()">getSoapAction</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the soapAction option value</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.ArrayList</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getStopClasses()">getStopClasses</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the list of classes which stop inhertance searches</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getStyle()">getStyle</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getStyle</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/wsdl/fromJava/Emitter.html#getTargetService()">getTargetService</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the target service name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getTypeMapping()">getTypeMapping</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <code>TypeMapping</code> used by the service</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getUse()">getUse</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getUse</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/wsdl/fromJava/Emitter.html#getUseInheritedMethods()">getUseInheritedMethods</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates if the emitter will search classes for inherited methods</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/wsdl/fromJava/Emitter.html#getVersionMessage()">getVersionMessage</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the version message</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.wsdl.Definition</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#getWSDL()">getWSDL</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a Full WSDL <code>Definition</code> for the current
 configuration parameters</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/wsdl/fromJava/Emitter.html#init(int)">init</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked prior to building a definition to ensure parms
 and data are set up.</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/wsdl/fromJava/Emitter.html#prettyDocumentToFile(org.w3c.dom.Document, java.lang.String)">prettyDocumentToFile</A></B>(org.w3c.dom.Document&nbsp;doc,
                     java.lang.String&nbsp;filename)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write a prettified document to a file.</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/wsdl/fromJava/Emitter.html#setAllowedMethods(java.lang.String)">setAllowedMethods</A></B>(java.lang.String&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a list of methods to export</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/wsdl/fromJava/Emitter.html#setAllowedMethods(java.util.Vector)">setAllowedMethods</A></B>(java.util.Vector&nbsp;allowedMethods)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a Vector of methods to export</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/wsdl/fromJava/Emitter.html#setBindingName(java.lang.String)">setBindingName</A></B>(java.lang.String&nbsp;bindingName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the binding name</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/wsdl/fromJava/Emitter.html#setCls(java.lang.Class)">setCls</A></B>(java.lang.Class&nbsp;cls)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the <code>Class</code> to export</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/wsdl/fromJava/Emitter.html#setCls(java.lang.String)">setCls</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the <code>Class</code> to export</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/wsdl/fromJava/Emitter.html#setClsSmart(java.lang.Class, java.lang.String)">setClsSmart</A></B>(java.lang.Class&nbsp;cls,
            java.lang.String&nbsp;location)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the <code>Class</code> to export.</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/wsdl/fromJava/Emitter.html#setDefaultTypeMapping(org.apache.axis.encoding.TypeMapping)">setDefaultTypeMapping</A></B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>&nbsp;tm)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>Use setTypeMappingRegistry instead</I></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/wsdl/fromJava/Emitter.html#setDescription(java.lang.String)">setDescription</A></B>(java.lang.String&nbsp;description)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the service description</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/wsdl/fromJava/Emitter.html#setDisallowedMethods(java.lang.String)">setDisallowedMethods</A></B>(java.lang.String&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a list of methods NOT to export</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/wsdl/fromJava/Emitter.html#setDisallowedMethods(java.util.Vector)">setDisallowedMethods</A></B>(java.util.Vector&nbsp;disallowedMethods)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a list of methods NOT to export</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/wsdl/fromJava/Emitter.html#setEmitAllTypes(boolean)">setEmitAllTypes</A></B>(boolean&nbsp;emitAllTypes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/wsdl/fromJava/Emitter.html#setExtraClasses(java.lang.Class[])">setExtraClasses</A></B>(java.lang.Class[]&nbsp;extraClasses)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provide a list of classes which the emitter will produce WSDL
 type definitions for.</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/wsdl/fromJava/Emitter.html#setExtraClasses(java.lang.String)">setExtraClasses</A></B>(java.lang.String&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provide a comma or space seperated list of classes which
 the emitter will produce WSDL type definitions for.</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/wsdl/fromJava/Emitter.html#setImplCls(java.lang.Class)">setImplCls</A></B>(java.lang.Class&nbsp;implCls)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the implementation <code>Class</code></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/wsdl/fromJava/Emitter.html#setImplCls(java.lang.String)">setImplCls</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the implementation <code>Class</code></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/wsdl/fromJava/Emitter.html#setImplNamespace(java.lang.String)">setImplNamespace</A></B>(java.lang.String&nbsp;ns)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the implementation namespace</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/wsdl/fromJava/Emitter.html#setImportUrl(java.lang.String)">setImportUrl</A></B>(java.lang.String&nbsp;importUrl)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the interface location URL
 for importing</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/wsdl/fromJava/Emitter.html#setInputSchema(java.lang.String)">setInputSchema</A></B>(java.lang.String&nbsp;inputSchema)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the name of the input schema</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/wsdl/fromJava/Emitter.html#setInputWSDL(java.lang.String)">setInputWSDL</A></B>(java.lang.String&nbsp;inputWSDL)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the name of the input WSDL</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/wsdl/fromJava/Emitter.html#setIntfNamespace(java.lang.String)">setIntfNamespace</A></B>(java.lang.String&nbsp;ns)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the interface namespace</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/wsdl/fromJava/Emitter.html#setLocationUrl(java.lang.String)">setLocationUrl</A></B>(java.lang.String&nbsp;locationUrl)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the service endpoint URL</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/wsdl/fromJava/Emitter.html#setMode(int)">setMode</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>(use setStyle and setUse)</I></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/wsdl/fromJava/Emitter.html#setNamespaceMap(java.util.Map)">setNamespaceMap</A></B>(java.util.Map&nbsp;map)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the packagename to namespace map with the given map</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/wsdl/fromJava/Emitter.html#setPortTypeName(java.lang.String)">setPortTypeName</A></B>(java.lang.String&nbsp;portTypeName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the portType name</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/wsdl/fromJava/Emitter.html#setServiceDesc(org.apache.axis.description.ServiceDesc)">setServiceDesc</A></B>(<A HREF="../../../../../org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>&nbsp;serviceDesc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method setServiceDesc</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/wsdl/fromJava/Emitter.html#setServiceElementName(java.lang.String)">setServiceElementName</A></B>(java.lang.String&nbsp;serviceElementName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the service element name</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/wsdl/fromJava/Emitter.html#setServicePortName(java.lang.String)">setServicePortName</A></B>(java.lang.String&nbsp;servicePortName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the String representation of the service port name</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/wsdl/fromJava/Emitter.html#setSoapAction(java.lang.String)">setSoapAction</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the soapAction option value</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/wsdl/fromJava/Emitter.html#setStopClasses(java.util.ArrayList)">setStopClasses</A></B>(java.util.ArrayList&nbsp;stopClasses)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation</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/wsdl/fromJava/Emitter.html#setStopClasses(java.lang.String)">setStopClasses</A></B>(java.lang.String&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation</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/wsdl/fromJava/Emitter.html#setStyle(java.lang.String)">setStyle</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setStyle</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/wsdl/fromJava/Emitter.html#setStyle(org.apache.axis.constants.Style)">setStyle</A></B>(<A HREF="../../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setStyle</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/wsdl/fromJava/Emitter.html#setTargetService(java.lang.String)">setTargetService</A></B>(java.lang.String&nbsp;targetService)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the target service name</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/wsdl/fromJava/Emitter.html#setTypeMapping(org.apache.axis.encoding.TypeMapping)">setTypeMapping</A></B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>&nbsp;tm)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the <code>TypeMapping</code> used by the service</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/wsdl/fromJava/Emitter.html#setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)">setTypeMappingRegistry</A></B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding">TypeMappingRegistry</A>&nbsp;tmr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the TypeMappingRegistry for this Emitter.</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/wsdl/fromJava/Emitter.html#setUse(java.lang.String)">setUse</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setUse</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/wsdl/fromJava/Emitter.html#setUse(org.apache.axis.constants.Use)">setUse</A></B>(<A HREF="../../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setUse</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/wsdl/fromJava/Emitter.html#setUseInheritedMethods(boolean)">setUseInheritedMethods</A></B>(boolean&nbsp;useInheritedMethods)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turn on or off inherited method WSDL generation.</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/wsdl/fromJava/Emitter.html#setVersionMessage(java.lang.String)">setVersionMessage</A></B>(java.lang.String&nbsp;versionMessage)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the version message that appears at the top of the WSDL
 If not set, we use the default version message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.Binding</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeBinding(javax.wsdl.Definition, boolean)">writeBinding</A></B>(javax.wsdl.Definition&nbsp;def,
             boolean&nbsp;add)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create the binding.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.BindingOperation</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeBindingOperation(javax.wsdl.Definition, javax.wsdl.Binding, javax.wsdl.Operation, org.apache.axis.description.OperationDesc)">writeBindingOperation</A></B>(javax.wsdl.Definition&nbsp;def,
                      javax.wsdl.Binding&nbsp;binding,
                      javax.wsdl.Operation&nbsp;oper,
                      <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Binding Operation</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/wsdl/fromJava/Emitter.html#writeDefinitions(javax.wsdl.Definition, java.lang.String)">writeDefinitions</A></B>(javax.wsdl.Definition&nbsp;def,
                 java.lang.String&nbsp;tns)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create the definition header information.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.Message</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeFaultMessage(javax.wsdl.Definition, org.apache.axis.description.FaultDesc)">writeFaultMessage</A></B>(javax.wsdl.Definition&nbsp;def,
                  <A HREF="../../../../../org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>&nbsp;exception)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Fault Message</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/wsdl/fromJava/Emitter.html#writeImport(javax.wsdl.Definition, java.lang.String, java.lang.String)">writeImport</A></B>(javax.wsdl.Definition&nbsp;def,
            java.lang.String&nbsp;tns,
            java.lang.String&nbsp;loc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create and add an import</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/wsdl/fromJava/Emitter.html#writeMessages(javax.wsdl.Definition, javax.wsdl.Operation, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)">writeMessages</A></B>(javax.wsdl.Definition&nbsp;def,
              javax.wsdl.Operation&nbsp;oper,
              <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc,
              javax.wsdl.BindingOperation&nbsp;bindingOper)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Message</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.BindingOperation</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeOperation(javax.wsdl.Definition, javax.wsdl.Binding, org.apache.axis.description.OperationDesc)">writeOperation</A></B>(javax.wsdl.Definition&nbsp;def,
               javax.wsdl.Binding&nbsp;binding,
               <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Operation</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/wsdl/fromJava/Emitter.html#writePartToMessage(javax.wsdl.Definition, javax.wsdl.Message, boolean, org.apache.axis.description.ParameterDesc)">writePartToMessage</A></B>(javax.wsdl.Definition&nbsp;def,
                   javax.wsdl.Message&nbsp;msg,
                   boolean&nbsp;request,
                   <A HREF="../../../../../org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>&nbsp;param)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Part</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/wsdl/fromJava/Emitter.html#writePortType(javax.wsdl.Definition, javax.wsdl.Binding)">writePortType</A></B>(javax.wsdl.Definition&nbsp;def,
              javax.wsdl.Binding&nbsp;binding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a PortType</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.Message</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeRequestMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)">writeRequestMessage</A></B>(javax.wsdl.Definition&nbsp;def,
                    <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper,
                    javax.wsdl.BindingOperation&nbsp;bindop)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Request Message</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.Message</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeResponseMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)">writeResponseMessage</A></B>(javax.wsdl.Definition&nbsp;def,
                     <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc,
                     javax.wsdl.BindingOperation&nbsp;bindop)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Response Message</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/wsdl/fromJava/Emitter.html#writeService(javax.wsdl.Definition, javax.wsdl.Binding)">writeService</A></B>(javax.wsdl.Definition&nbsp;def,
             javax.wsdl.Binding&nbsp;binding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create the service.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.extensions.ExtensibilityElement</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPBody(javax.xml.namespace.QName)">writeSOAPBody</A></B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operQName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method writeSOAPBody</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.extensions.soap.SOAPFault</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPFault(org.apache.axis.description.FaultDesc)">writeSOAPFault</A></B>(<A HREF="../../../../../org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>&nbsp;faultDesc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method writeSOAPFault</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;javax.wsdl.extensions.soap.SOAPHeader</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPHeader(org.apache.axis.description.ParameterDesc, javax.xml.namespace.QName, java.lang.String)">writeSOAPHeader</A></B>(<A HREF="../../../../../org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>&nbsp;p,
                <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;messageQName,
                java.lang.String&nbsp;partName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a SOAPHeader element</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/wsdl/fromJava/Emitter.html#writeWrapperPart(javax.wsdl.Definition, javax.wsdl.Message, org.apache.axis.description.OperationDesc, boolean)">writeWrapperPart</A></B>(javax.wsdl.Definition&nbsp;def,
                 javax.wsdl.Message&nbsp;msg,
                 <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper,
                 boolean&nbsp;request)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write out the schema definition for a WRAPPED operation request or
 response.</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, finalize, 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>
<HR>

<A NAME="MODE_ALL"><!-- --></A><H3>
MODE_ALL</H3>
<PRE>
public static final int <B>MODE_ALL</B></PRE>
<DL>
<DD>Field MODE_ALL
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_ALL">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="MODE_INTERFACE"><!-- --></A><H3>
MODE_INTERFACE</H3>
<PRE>
public static final int <B>MODE_INTERFACE</B></PRE>
<DL>
<DD>Field MODE_INTERFACE
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_INTERFACE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="MODE_IMPLEMENTATION"><!-- --></A><H3>
MODE_IMPLEMENTATION</H3>
<PRE>
public static final int <B>MODE_IMPLEMENTATION</B></PRE>
<DL>
<DD>Field MODE_IMPLEMENTATION
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_IMPLEMENTATION">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="types"><!-- --></A><H3>
types</H3>
<PRE>
protected <A HREF="../../../../../org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A> <B>types</B></PRE>
<DL>
<DD>Field types
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="MODE_RPC"><!-- --></A><H3>
MODE_RPC</H3>
<PRE>
public static final int <B>MODE_RPC</B></PRE>
<DL>
<DD>DEPRECATED - Indicates style=rpc use=encoded
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_RPC">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="MODE_DOCUMENT"><!-- --></A><H3>
MODE_DOCUMENT</H3>
<PRE>
public static final int <B>MODE_DOCUMENT</B></PRE>
<DL>
<DD>DEPRECATED - Indicates style=document use=literal
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_DOCUMENT">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="MODE_DOC_WRAPPED"><!-- --></A><H3>
MODE_DOC_WRAPPED</H3>
<PRE>
public static final int <B>MODE_DOC_WRAPPED</B></PRE>
<DL>
<DD>DEPRECATED - Indicates style=wrapped use=literal
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.axis.wsdl.fromJava.Emitter.MODE_DOC_WRAPPED">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="standardTypes"><!-- --></A><H3>
standardTypes</H3>
<PRE>
protected static <A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A> <B>standardTypes</B></PRE>
<DL>
<DD>Field standardTypes
<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="Emitter()"><!-- --></A><H3>
Emitter</H3>
<PRE>
public <B>Emitter</B>()</PRE>
<DL>
<DD>Construct Emitter.
 Set the contextual information using set* methods
 Invoke emit to emit the code
<P>
</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="emit(java.lang.String, java.lang.String)"><!-- --></A><H3>
emit</H3>
<PRE>
public void <B>emit</B>(java.lang.String&nbsp;filename1,
                 java.lang.String&nbsp;filename2)
          throws java.io.IOException,
                 javax.wsdl.WSDLException,
                 org.xml.sax.SAXException,
                 javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Generates WSDL documents for a given <code>Class</code>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>filename1</CODE> - interface WSDL<DD><CODE>filename2</CODE> - implementation WSDL
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="emit(java.lang.String)"><!-- --></A><H3>
emit</H3>
<PRE>
public void <B>emit</B>(java.lang.String&nbsp;filename)
          throws java.io.IOException,
                 javax.wsdl.WSDLException,
                 org.xml.sax.SAXException,
                 javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Generates a complete WSDL document for a given <code>Class</code>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>filename</CODE> - WSDL
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="emit(int)"><!-- --></A><H3>
emit</H3>
<PRE>
public org.w3c.dom.Document <B>emit</B>(int&nbsp;mode)
                          throws java.io.IOException,
                                 javax.wsdl.WSDLException,
                                 org.xml.sax.SAXException,
                                 javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Generates a WSDL document for a given <code>Class</code>.
 The WSDL generated is controlled by the mode parameter
 mode 0: All
 mode 1: Interface
 mode 2: Implementation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mode</CODE> - generation mode - all, interface, implementation
<DT><B>Returns:</B><DD>Document
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="emitToString(int)"><!-- --></A><H3>
emitToString</H3>
<PRE>
public java.lang.String <B>emitToString</B>(int&nbsp;mode)
                              throws java.io.IOException,
                                     javax.wsdl.WSDLException,
                                     org.xml.sax.SAXException,
                                     javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Generates a String containing the WSDL for a given <code>Class</code>.
 The WSDL generated is controlled by the mode parameter
 mode 0: All
 mode 1: Interface
 mode 2: Implementation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mode</CODE> - generation mode - all, interface, implementation
<DT><B>Returns:</B><DD>String
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="emit(java.lang.String, int)"><!-- --></A><H3>
emit</H3>
<PRE>
public void <B>emit</B>(java.lang.String&nbsp;filename,
                 int&nbsp;mode)
          throws java.io.IOException,
                 javax.wsdl.WSDLException,
                 org.xml.sax.SAXException,
                 javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Generates a WSDL document for a given <code>Class</code>.
 The WSDL generated is controlled by the mode parameter
 mode 0: All
 mode 1: Interface
 mode 2: Implementation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>filename</CODE> - WSDL<DD><CODE>mode</CODE> - generation mode - all, interface, implementation
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getWSDL()"><!-- --></A><H3>
getWSDL</H3>
<PRE>
public javax.wsdl.Definition <B>getWSDL</B>()
                              throws java.io.IOException,
                                     javax.wsdl.WSDLException,
                                     org.xml.sax.SAXException,
                                     javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Get a Full WSDL <code>Definition</code> for the current
 configuration parameters
<P>
<DD><DL>

<DT><B>Returns:</B><DD>WSDL <code>Definition</code>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getIntfWSDL()"><!-- --></A><H3>
getIntfWSDL</H3>
<PRE>
public javax.wsdl.Definition <B>getIntfWSDL</B>()
                                  throws java.io.IOException,
                                         javax.wsdl.WSDLException,
                                         org.xml.sax.SAXException,
                                         javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Get a interface WSDL <code>Definition</code> for the
 current configuration parameters
<P>
<DD><DL>

<DT><B>Returns:</B><DD>WSDL <code>Definition</code>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getImplWSDL()"><!-- --></A><H3>
getImplWSDL</H3>
<PRE>
public javax.wsdl.Definition <B>getImplWSDL</B>()
                                  throws java.io.IOException,
                                         javax.wsdl.WSDLException,
                                         org.xml.sax.SAXException,
                                         javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Get implementation WSDL <code>Definition</code> for the
 current configuration parameters
<P>
<DD><DL>

<DT><B>Returns:</B><DD>WSDL <code>Definition</code>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="init(int)"><!-- --></A><H3>
init</H3>
<PRE>
protected void <B>init</B>(int&nbsp;mode)</PRE>
<DL>
<DD>Invoked prior to building a definition to ensure parms
 and data are set up.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mode</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="createDefinition()"><!-- --></A><H3>
createDefinition</H3>
<PRE>
protected javax.wsdl.Definition <B>createDefinition</B>()
                                          throws javax.wsdl.WSDLException,
                                                 org.xml.sax.SAXException,
                                                 java.io.IOException,
                                                 javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Build a Definition from the input wsdl file or create
 a new Definition
<P>
<DD><DL>

<DT><B>Returns:</B><DD>WSDL Definition
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createTypes(javax.wsdl.Definition)"><!-- --></A><H3>
createTypes</H3>
<PRE>
protected <A HREF="../../../../../org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A> <B>createTypes</B>(javax.wsdl.Definition&nbsp;def)
                     throws java.io.IOException,
                            javax.wsdl.WSDLException,
                            org.xml.sax.SAXException,
                            javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Build a Types object and load the input wsdl types
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - Corresponding wsdl Definition
<DT><B>Returns:</B><DD>Types object
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE>org.xml.sax.SAXException</CODE>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createDocumentationElement(java.lang.String)"><!-- --></A><H3>
createDocumentationElement</H3>
<PRE>
protected org.w3c.dom.Element <B>createDocumentationElement</B>(java.lang.String&nbsp;documentation)</PRE>
<DL>
<DD>Create a documentation element
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>documentation</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeDefinitions(javax.wsdl.Definition, java.lang.String)"><!-- --></A><H3>
writeDefinitions</H3>
<PRE>
protected void <B>writeDefinitions</B>(javax.wsdl.Definition&nbsp;def,
                                java.lang.String&nbsp;tns)</PRE>
<DL>
<DD>Create the definition header information.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <code>Definition</code><DD><CODE>tns</CODE> - target namespace</DL>
</DD>
</DL>
<HR>

<A NAME="writeImport(javax.wsdl.Definition, java.lang.String, java.lang.String)"><!-- --></A><H3>
writeImport</H3>
<PRE>
protected void <B>writeImport</B>(javax.wsdl.Definition&nbsp;def,
                           java.lang.String&nbsp;tns,
                           java.lang.String&nbsp;loc)</PRE>
<DL>
<DD>Create and add an import
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <code>Definition</code><DD><CODE>tns</CODE> - target namespace<DD><CODE>loc</CODE> - target location</DL>
</DD>
</DL>
<HR>

<A NAME="writeBinding(javax.wsdl.Definition, boolean)"><!-- --></A><H3>
writeBinding</H3>
<PRE>
protected javax.wsdl.Binding <B>writeBinding</B>(javax.wsdl.Definition&nbsp;def,
                                          boolean&nbsp;add)</PRE>
<DL>
<DD>Create the binding.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <code>Definition</code><DD><CODE>add</CODE> - true if binding should be added to the def
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeService(javax.wsdl.Definition, javax.wsdl.Binding)"><!-- --></A><H3>
writeService</H3>
<PRE>
protected void <B>writeService</B>(javax.wsdl.Definition&nbsp;def,
                            javax.wsdl.Binding&nbsp;binding)</PRE>
<DL>
<DD>Create the service.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>binding</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="writePortType(javax.wsdl.Definition, javax.wsdl.Binding)"><!-- --></A><H3>
writePortType</H3>
<PRE>
protected void <B>writePortType</B>(javax.wsdl.Definition&nbsp;def,
                             javax.wsdl.Binding&nbsp;binding)
                      throws javax.wsdl.WSDLException,
                             <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a PortType
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>binding</CODE> - 
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="writeMessages(javax.wsdl.Definition, javax.wsdl.Operation, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><!-- --></A><H3>
writeMessages</H3>
<PRE>
protected void <B>writeMessages</B>(javax.wsdl.Definition&nbsp;def,
                             javax.wsdl.Operation&nbsp;oper,
                             <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc,
                             javax.wsdl.BindingOperation&nbsp;bindingOper)
                      throws javax.wsdl.WSDLException,
                             <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a Message
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - Definition, the WSDL definition<DD><CODE>oper</CODE> - Operation, the wsdl operation<DD><CODE>desc</CODE> - OperationDesc, the Operation Description<DD><CODE>bindingOper</CODE> - BindingOperation, corresponding Binding Operation
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="writeOperation(javax.wsdl.Definition, javax.wsdl.Binding, org.apache.axis.description.OperationDesc)"><!-- --></A><H3>
writeOperation</H3>
<PRE>
protected javax.wsdl.BindingOperation <B>writeOperation</B>(javax.wsdl.Definition&nbsp;def,
                                                     javax.wsdl.Binding&nbsp;binding,
                                                     <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc)</PRE>
<DL>
<DD>Create a Operation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>binding</CODE> - <DD><CODE>desc</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeBindingOperation(javax.wsdl.Definition, javax.wsdl.Binding, javax.wsdl.Operation, org.apache.axis.description.OperationDesc)"><!-- --></A><H3>
writeBindingOperation</H3>
<PRE>
protected javax.wsdl.BindingOperation <B>writeBindingOperation</B>(javax.wsdl.Definition&nbsp;def,
                                                            javax.wsdl.Binding&nbsp;binding,
                                                            javax.wsdl.Operation&nbsp;oper,
                                                            <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc)</PRE>
<DL>
<DD>Create a Binding Operation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>binding</CODE> - <DD><CODE>oper</CODE> - <DD><CODE>desc</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeSOAPHeader(org.apache.axis.description.ParameterDesc, javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
writeSOAPHeader</H3>
<PRE>
protected javax.wsdl.extensions.soap.SOAPHeader <B>writeSOAPHeader</B>(<A HREF="../../../../../org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>&nbsp;p,
                                                                <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;messageQName,
                                                                java.lang.String&nbsp;partName)</PRE>
<DL>
<DD>Create a SOAPHeader element
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="writeSOAPBody(javax.xml.namespace.QName)"><!-- --></A><H3>
writeSOAPBody</H3>
<PRE>
protected javax.wsdl.extensions.ExtensibilityElement <B>writeSOAPBody</B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operQName)</PRE>
<DL>
<DD>Method writeSOAPBody
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operQName</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeSOAPFault(org.apache.axis.description.FaultDesc)"><!-- --></A><H3>
writeSOAPFault</H3>
<PRE>
protected javax.wsdl.extensions.soap.SOAPFault <B>writeSOAPFault</B>(<A HREF="../../../../../org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>&nbsp;faultDesc)</PRE>
<DL>
<DD>Method writeSOAPFault
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>faultDesc</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeRequestMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><!-- --></A><H3>
writeRequestMessage</H3>
<PRE>
protected javax.wsdl.Message <B>writeRequestMessage</B>(javax.wsdl.Definition&nbsp;def,
                                                 <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper,
                                                 javax.wsdl.BindingOperation&nbsp;bindop)
                                          throws javax.wsdl.WSDLException,
                                                 <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a Request Message
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>oper</CODE> - 
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getRequestQName(org.apache.axis.description.OperationDesc)"><!-- --></A><H3>
getRequestQName</H3>
<PRE>
protected <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getRequestQName</B>(<A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper)</PRE>
<DL>
<DD>Method getRequestQName
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>oper</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getResponseQName(org.apache.axis.description.OperationDesc)"><!-- --></A><H3>
getResponseQName</H3>
<PRE>
protected <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getResponseQName</B>(<A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper)</PRE>
<DL>
<DD>Method getResponseQName
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>oper</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="writeWrapperPart(javax.wsdl.Definition, javax.wsdl.Message, org.apache.axis.description.OperationDesc, boolean)"><!-- --></A><H3>
writeWrapperPart</H3>
<PRE>
public java.lang.String <B>writeWrapperPart</B>(javax.wsdl.Definition&nbsp;def,
                                         javax.wsdl.Message&nbsp;msg,
                                         <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;oper,
                                         boolean&nbsp;request)
                                  throws <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Write out the schema definition for a WRAPPED operation request or
 response.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>msg</CODE> - <DD><CODE>oper</CODE> - <DD><CODE>request</CODE> - 
<DT><B>Returns:</B><DD>the name of the part the was written
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="writeResponseMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><!-- --></A><H3>
writeResponseMessage</H3>
<PRE>
protected javax.wsdl.Message <B>writeResponseMessage</B>(javax.wsdl.Definition&nbsp;def,
                                                  <A HREF="../../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;desc,
                                                  javax.wsdl.BindingOperation&nbsp;bindop)
                                           throws javax.wsdl.WSDLException,
                                                  <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a Response Message
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>desc</CODE> - 
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="writeFaultMessage(javax.wsdl.Definition, org.apache.axis.description.FaultDesc)"><!-- --></A><H3>
writeFaultMessage</H3>
<PRE>
protected javax.wsdl.Message <B>writeFaultMessage</B>(javax.wsdl.Definition&nbsp;def,
                                               <A HREF="../../../../../org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>&nbsp;exception)
                                        throws javax.wsdl.WSDLException,
                                               <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a Fault Message
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>exception</CODE> - (an ExceptionRep object)
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="writePartToMessage(javax.wsdl.Definition, javax.wsdl.Message, boolean, org.apache.axis.description.ParameterDesc)"><!-- --></A><H3>
writePartToMessage</H3>
<PRE>
public java.lang.String <B>writePartToMessage</B>(javax.wsdl.Definition&nbsp;def,
                                           javax.wsdl.Message&nbsp;msg,
                                           boolean&nbsp;request,
                                           <A HREF="../../../../../org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>&nbsp;param)
                                    throws javax.wsdl.WSDLException,
                                           <A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Create a Part
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>msg</CODE> - <DD><CODE>request</CODE> - message is for a request<DD><CODE>param</CODE> - ParamRep object
<DT><B>Returns:</B><DD>The parameter name added or null
<DT><B>Throws:</B>
<DD><CODE>javax.wsdl.WSDLException</CODE>
<DD><CODE><A HREF="../../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createMessageName(javax.wsdl.Definition, java.lang.String)"><!-- --></A><H3>
createMessageName</H3>
<PRE>
protected <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>createMessageName</B>(javax.wsdl.Definition&nbsp;def,
                                  java.lang.String&nbsp;methodName)</PRE>
<DL>
<DD>Method createMessageName
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>def</CODE> - <DD><CODE>methodName</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="prettyDocumentToFile(org.w3c.dom.Document, java.lang.String)"><!-- --></A><H3>
prettyDocumentToFile</H3>
<PRE>
protected void <B>prettyDocumentToFile</B>(org.w3c.dom.Document&nbsp;doc,
                                    java.lang.String&nbsp;filename)
                             throws java.io.IOException</PRE>
<DL>
<DD>Write a prettified document to a file.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>doc</CODE> - the Document to write<DD><CODE>filename</CODE> - the name of the file to be written
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - various file i/o exceptions</DL>
</DD>
</DL>
<HR>

<A NAME="getCls()"><!-- --></A><H3>
getCls</H3>
<PRE>
public java.lang.Class <B>getCls</B>()</PRE>
<DL>
<DD>Returns the <code>Class</code> to export
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the <code>Class</code> to export</DL>
</DD>
</DL>
<HR>

<A NAME="setCls(java.lang.Class)"><!-- --></A><H3>
setCls</H3>
<PRE>
public void <B>setCls</B>(java.lang.Class&nbsp;cls)</PRE>
<DL>
<DD>Sets the <code>Class</code> to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cls</CODE> - the <code>Class</code> to export</DL>
</DD>
</DL>
<HR>

<A NAME="setClsSmart(java.lang.Class, java.lang.String)"><!-- --></A><H3>
setClsSmart</H3>
<PRE>
public void <B>setClsSmart</B>(java.lang.Class&nbsp;cls,
                        java.lang.String&nbsp;location)</PRE>
<DL>
<DD>Sets the <code>Class</code> to export.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cls</CODE> - the <code>Class</code> to export<DD><CODE>location</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="setCls(java.lang.String)"><!-- --></A><H3>
setCls</H3>
<PRE>
public void <B>setCls</B>(java.lang.String&nbsp;className)
            throws java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Sets the <code>Class</code> to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>className</CODE> - the name of the <code>Class</code> to export
<DT><B>Throws:</B>
<DD><CODE>java.lang.ClassNotFoundException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getImplCls()"><!-- --></A><H3>
getImplCls</H3>
<PRE>
public java.lang.Class <B>getImplCls</B>()</PRE>
<DL>
<DD>Returns the implementation <code>Class</code> if set
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the implementation Class or null</DL>
</DD>
</DL>
<HR>

<A NAME="setImplCls(java.lang.Class)"><!-- --></A><H3>
setImplCls</H3>
<PRE>
public void <B>setImplCls</B>(java.lang.Class&nbsp;implCls)</PRE>
<DL>
<DD>Sets the implementation <code>Class</code>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>implCls</CODE> - the <code>Class</code> to export</DL>
</DD>
</DL>
<HR>

<A NAME="setImplCls(java.lang.String)"><!-- --></A><H3>
setImplCls</H3>
<PRE>
public void <B>setImplCls</B>(java.lang.String&nbsp;className)</PRE>
<DL>
<DD>Sets the implementation <code>Class</code>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>className</CODE> - the name of the implementation <code>Class</code></DL>
</DD>
</DL>
<HR>

<A NAME="getIntfNamespace()"><!-- --></A><H3>
getIntfNamespace</H3>
<PRE>
public java.lang.String <B>getIntfNamespace</B>()</PRE>
<DL>
<DD>Returns the interface namespace
<P>
<DD><DL>

<DT><B>Returns:</B><DD>interface target namespace</DL>
</DD>
</DL>
<HR>

<A NAME="setIntfNamespace(java.lang.String)"><!-- --></A><H3>
setIntfNamespace</H3>
<PRE>
public void <B>setIntfNamespace</B>(java.lang.String&nbsp;ns)</PRE>
<DL>
<DD>Set the interface namespace
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ns</CODE> - interface target namespace</DL>
</DD>
</DL>
<HR>

<A NAME="getImplNamespace()"><!-- --></A><H3>
getImplNamespace</H3>
<PRE>
public java.lang.String <B>getImplNamespace</B>()</PRE>
<DL>
<DD>Returns the implementation namespace
<P>
<DD><DL>

<DT><B>Returns:</B><DD>implementation target namespace</DL>
</DD>
</DL>
<HR>

<A NAME="setImplNamespace(java.lang.String)"><!-- --></A><H3>
setImplNamespace</H3>
<PRE>
public void <B>setImplNamespace</B>(java.lang.String&nbsp;ns)</PRE>
<DL>
<DD>Set the implementation namespace
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ns</CODE> - implementation target namespace</DL>
</DD>
</DL>
<HR>

<A NAME="getAllowedMethods()"><!-- --></A><H3>
getAllowedMethods</H3>
<PRE>
public java.util.Vector <B>getAllowedMethods</B>()</PRE>
<DL>
<DD>Returns a vector of methods to export
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a space separated list of methods to export</DL>
</DD>
</DL>
<HR>

<A NAME="setAllowedMethods(java.lang.String)"><!-- --></A><H3>
setAllowedMethods</H3>
<PRE>
public void <B>setAllowedMethods</B>(java.lang.String&nbsp;text)</PRE>
<DL>
<DD>Add a list of methods to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="setAllowedMethods(java.util.Vector)"><!-- --></A><H3>
setAllowedMethods</H3>
<PRE>
public void <B>setAllowedMethods</B>(java.util.Vector&nbsp;allowedMethods)</PRE>
<DL>
<DD>Add a Vector of methods to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>allowedMethods</CODE> - a vector of methods to export</DL>
</DD>
</DL>
<HR>

<A NAME="getUseInheritedMethods()"><!-- --></A><H3>
getUseInheritedMethods</H3>
<PRE>
public boolean <B>getUseInheritedMethods</B>()</PRE>
<DL>
<DD>Indicates if the emitter will search classes for inherited methods
<P>
<DD><DL>

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

<A NAME="setUseInheritedMethods(boolean)"><!-- --></A><H3>
setUseInheritedMethods</H3>
<PRE>
public void <B>setUseInheritedMethods</B>(boolean&nbsp;useInheritedMethods)</PRE>
<DL>
<DD>Turn on or off inherited method WSDL generation.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>useInheritedMethods</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="setDisallowedMethods(java.util.Vector)"><!-- --></A><H3>
setDisallowedMethods</H3>
<PRE>
public void <B>setDisallowedMethods</B>(java.util.Vector&nbsp;disallowedMethods)</PRE>
<DL>
<DD>Add a list of methods NOT to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>disallowedMethods</CODE> - vector of method name strings</DL>
</DD>
</DL>
<HR>

<A NAME="setDisallowedMethods(java.lang.String)"><!-- --></A><H3>
setDisallowedMethods</H3>
<PRE>
public void <B>setDisallowedMethods</B>(java.lang.String&nbsp;text)</PRE>
<DL>
<DD>Add a list of methods NOT to export
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - space separated list of method names</DL>
</DD>
</DL>
<HR>

<A NAME="getDisallowedMethods()"><!-- --></A><H3>
getDisallowedMethods</H3>
<PRE>
public java.util.Vector <B>getDisallowedMethods</B>()</PRE>
<DL>
<DD>Return list of methods that should not be exported
<P>
<DD><DL>

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

<A NAME="setStopClasses(java.util.ArrayList)"><!-- --></A><H3>
setStopClasses</H3>
<PRE>
public void <B>setStopClasses</B>(java.util.ArrayList&nbsp;stopClasses)</PRE>
<DL>
<DD>Adds a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stopClasses</CODE> - vector of class name strings</DL>
</DD>
</DL>
<HR>

<A NAME="setStopClasses(java.lang.String)"><!-- --></A><H3>
setStopClasses</H3>
<PRE>
public void <B>setStopClasses</B>(java.lang.String&nbsp;text)</PRE>
<DL>
<DD>Add a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - space separated list of class names</DL>
</DD>
</DL>
<HR>

<A NAME="getStopClasses()"><!-- --></A><H3>
getStopClasses</H3>
<PRE>
public java.util.ArrayList <B>getStopClasses</B>()</PRE>
<DL>
<DD>Return the list of classes which stop inhertance searches
<P>
<DD><DL>

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

<A NAME="getNamespaceMap()"><!-- --></A><H3>
getNamespaceMap</H3>
<PRE>
public java.util.Map <B>getNamespaceMap</B>()</PRE>
<DL>
<DD>get the packagename to namespace map
<P>
<DD><DL>

<DT><B>Returns:</B><DD><code>Map</code></DL>
</DD>
</DL>
<HR>

<A NAME="setNamespaceMap(java.util.Map)"><!-- --></A><H3>
setNamespaceMap</H3>
<PRE>
public void <B>setNamespaceMap</B>(java.util.Map&nbsp;map)</PRE>
<DL>
<DD>Set the packagename to namespace map with the given map
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>map</CODE> - packagename/namespace <code>Map</code></DL>
</DD>
</DL>
<HR>

<A NAME="getInputWSDL()"><!-- --></A><H3>
getInputWSDL</H3>
<PRE>
public java.lang.String <B>getInputWSDL</B>()</PRE>
<DL>
<DD>Get the name of the input WSDL
<P>
<DD><DL>

<DT><B>Returns:</B><DD>name of the input wsdl or null</DL>
</DD>
</DL>
<HR>

<A NAME="setInputWSDL(java.lang.String)"><!-- --></A><H3>
setInputWSDL</H3>
<PRE>
public void <B>setInputWSDL</B>(java.lang.String&nbsp;inputWSDL)</PRE>
<DL>
<DD>Set the name of the input WSDL
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>inputWSDL</CODE> - the name of the input WSDL</DL>
</DD>
</DL>
<HR>

<A NAME="getInputSchema()"><!-- --></A><H3>
getInputSchema</H3>
<PRE>
public java.lang.String <B>getInputSchema</B>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>the name of the input schema, or null</DL>
</DD>
</DL>
<HR>

<A NAME="setInputSchema(java.lang.String)"><!-- --></A><H3>
setInputSchema</H3>
<PRE>
public void <B>setInputSchema</B>(java.lang.String&nbsp;inputSchema)</PRE>
<DL>
<DD>Set the name of the input schema
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>inputSchema</CODE> - the name of the input schema</DL>
</DD>
</DL>
<HR>

<A NAME="getLocationUrl()"><!-- --></A><H3>
getLocationUrl</H3>
<PRE>
public java.lang.String <B>getLocationUrl</B>()</PRE>
<DL>
<DD>Returns the String representation of the service endpoint URL
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the service endpoint URL</DL>
</DD>
</DL>
<HR>

<A NAME="setLocationUrl(java.lang.String)"><!-- --></A><H3>
setLocationUrl</H3>
<PRE>
public void <B>setLocationUrl</B>(java.lang.String&nbsp;locationUrl)</PRE>
<DL>
<DD>Set the String representation of the service endpoint URL
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>locationUrl</CODE> - the String representation of the service endpoint URL</DL>
</DD>
</DL>
<HR>

<A NAME="getImportUrl()"><!-- --></A><H3>
getImportUrl</H3>
<PRE>
public java.lang.String <B>getImportUrl</B>()</PRE>
<DL>
<DD>Returns the String representation of the interface import location URL
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the interface import location URL</DL>
</DD>
</DL>
<HR>

<A NAME="setImportUrl(java.lang.String)"><!-- --></A><H3>
setImportUrl</H3>
<PRE>
public void <B>setImportUrl</B>(java.lang.String&nbsp;importUrl)</PRE>
<DL>
<DD>Set the String representation of the interface location URL
 for importing
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>importUrl</CODE> - the String representation of the interface
                  location URL for importing</DL>
</DD>
</DL>
<HR>

<A NAME="getServicePortName()"><!-- --></A><H3>
getServicePortName</H3>
<PRE>
public java.lang.String <B>getServicePortName</B>()</PRE>
<DL>
<DD>Returns the String representation of the service port name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the service port name</DL>
</DD>
</DL>
<HR>

<A NAME="setServicePortName(java.lang.String)"><!-- --></A><H3>
setServicePortName</H3>
<PRE>
public void <B>setServicePortName</B>(java.lang.String&nbsp;servicePortName)</PRE>
<DL>
<DD>Set the String representation of the service port name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>servicePortName</CODE> - the String representation of the service port name</DL>
</DD>
</DL>
<HR>

<A NAME="getServiceElementName()"><!-- --></A><H3>
getServiceElementName</H3>
<PRE>
public java.lang.String <B>getServiceElementName</B>()</PRE>
<DL>
<DD>Returns the String representation of the service element name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the service element name</DL>
</DD>
</DL>
<HR>

<A NAME="setServiceElementName(java.lang.String)"><!-- --></A><H3>
setServiceElementName</H3>
<PRE>
public void <B>setServiceElementName</B>(java.lang.String&nbsp;serviceElementName)</PRE>
<DL>
<DD>Set the String representation of the service element name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>serviceElementName</CODE> - the String representation of the service element name</DL>
</DD>
</DL>
<HR>

<A NAME="getPortTypeName()"><!-- --></A><H3>
getPortTypeName</H3>
<PRE>
public java.lang.String <B>getPortTypeName</B>()</PRE>
<DL>
<DD>Returns the String representation of the portType name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the portType name</DL>
</DD>
</DL>
<HR>

<A NAME="setPortTypeName(java.lang.String)"><!-- --></A><H3>
setPortTypeName</H3>
<PRE>
public void <B>setPortTypeName</B>(java.lang.String&nbsp;portTypeName)</PRE>
<DL>
<DD>Set the String representation of the portType name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>portTypeName</CODE> - the String representation of the portType name</DL>
</DD>
</DL>
<HR>

<A NAME="getBindingName()"><!-- --></A><H3>
getBindingName</H3>
<PRE>
public java.lang.String <B>getBindingName</B>()</PRE>
<DL>
<DD>Returns the String representation of the binding name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>String representation of the binding name</DL>
</DD>
</DL>
<HR>

<A NAME="setBindingName(java.lang.String)"><!-- --></A><H3>
setBindingName</H3>
<PRE>
public void <B>setBindingName</B>(java.lang.String&nbsp;bindingName)</PRE>
<DL>
<DD>Set the String representation of the binding name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bindingName</CODE> - the String representation of the binding name</DL>
</DD>
</DL>
<HR>

<A NAME="getTargetService()"><!-- --></A><H3>
getTargetService</H3>
<PRE>
public java.lang.String <B>getTargetService</B>()</PRE>
<DL>
<DD>Returns the target service name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the target service name</DL>
</DD>
</DL>
<HR>

<A NAME="setTargetService(java.lang.String)"><!-- --></A><H3>
setTargetService</H3>
<PRE>
public void <B>setTargetService</B>(java.lang.String&nbsp;targetService)</PRE>
<DL>
<DD>Set the target service name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>targetService</CODE> - the target service name</DL>
</DD>
</DL>
<HR>

<A NAME="getDescription()"><!-- --></A><H3>
getDescription</H3>
<PRE>
public java.lang.String <B>getDescription</B>()</PRE>
<DL>
<DD>Returns the service description
<P>
<DD><DL>

<DT><B>Returns:</B><DD>service description String</DL>
</DD>
</DL>
<HR>

<A NAME="setDescription(java.lang.String)"><!-- --></A><H3>
setDescription</H3>
<PRE>
public void <B>setDescription</B>(java.lang.String&nbsp;description)</PRE>
<DL>
<DD>Set the service description
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>description</CODE> - service description String</DL>
</DD>
</DL>
<HR>

<A NAME="getSoapAction()"><!-- --></A><H3>
getSoapAction</H3>
<PRE>
public java.lang.String <B>getSoapAction</B>()</PRE>
<DL>
<DD>Returns the soapAction option value
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the String DEFAULT, NONE or OPERATION</DL>
</DD>
</DL>
<HR>

<A NAME="setSoapAction(java.lang.String)"><!-- --></A><H3>
setSoapAction</H3>
<PRE>
public void <B>setSoapAction</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets the soapAction option value
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - must be DEFAULT, NONE, or OPERATION</DL>
</DD>
</DL>
<HR>

<A NAME="getTypeMapping()"><!-- --></A><H3>
getTypeMapping</H3>
<PRE>
public <A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A> <B>getTypeMapping</B>()</PRE>
<DL>
<DD>Returns the <code>TypeMapping</code> used by the service
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the <code>TypeMapping</code> used by the service</DL>
</DD>
</DL>
<HR>

<A NAME="setTypeMapping(org.apache.axis.encoding.TypeMapping)"><!-- --></A><H3>
setTypeMapping</H3>
<PRE>
public void <B>setTypeMapping</B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>&nbsp;tm)</PRE>
<DL>
<DD>Sets the <code>TypeMapping</code> used by the service
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tm</CODE> - the <code>TypeMapping</code> used by the service</DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultTypeMapping()"><!-- --></A><H3>
getDefaultTypeMapping</H3>
<PRE>
public <A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A> <B>getDefaultTypeMapping</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>Use getTypeMappingRegistry instead</I>
<P>
<DD>Returns the <code>defaultTypeMapping</code> used by the service
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the <code>defaultTypeMapping</code> used by the service</DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultTypeMapping(org.apache.axis.encoding.TypeMapping)"><!-- --></A><H3>
setDefaultTypeMapping</H3>
<PRE>
public void <B>setDefaultTypeMapping</B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>&nbsp;tm)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>Use setTypeMappingRegistry instead</I>
<P>
<DD>Sets the <code>defaultTypeMapping</code> used by the service
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tm</CODE> - the <code>defaultTypeMapping</code> used by the service</DL>
</DD>
</DL>
<HR>

<A NAME="setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)"><!-- --></A><H3>
setTypeMappingRegistry</H3>
<PRE>
public void <B>setTypeMappingRegistry</B>(<A HREF="../../../../../org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding">TypeMappingRegistry</A>&nbsp;tmr)</PRE>
<DL>
<DD>Set the TypeMappingRegistry for this Emitter.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStyle()"><!-- --></A><H3>
getStyle</H3>
<PRE>
public <A HREF="../../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A> <B>getStyle</B>()</PRE>
<DL>
<DD>getStyle
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Style setting (Style.RPC, Style.DOCUMENT, Style.WRAPPED, etc.)</DL>
</DD>
</DL>
<HR>

<A NAME="setStyle(java.lang.String)"><!-- --></A><H3>
setStyle</H3>
<PRE>
public void <B>setStyle</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>setStyle
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - String representing a style ("document", "rpc", "wrapped")
              Note that the case of the string is not important. "document" and "DOCUMENT"
              are both treated as document style.
              If the value is not a know style, the default setting is used.
              See org.apache.axis.constants.Style for a description of the interaction between
              Style/Use
              <br>NOTE: If style is specified as "wrapped", use is set to literal.</DL>
</DD>
</DL>
<HR>

<A NAME="setStyle(org.apache.axis.constants.Style)"><!-- --></A><H3>
setStyle</H3>
<PRE>
public void <B>setStyle</B>(<A HREF="../../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>&nbsp;value)</PRE>
<DL>
<DD>setStyle
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - Style setting</DL>
</DD>
</DL>
<HR>

<A NAME="getUse()"><!-- --></A><H3>
getUse</H3>
<PRE>
public <A HREF="../../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A> <B>getUse</B>()</PRE>
<DL>
<DD>getUse
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Use setting (Use.ENCODED, Use.LITERAL)</DL>
</DD>
</DL>
<HR>

<A NAME="setUse(java.lang.String)"><!-- --></A><H3>
setUse</H3>
<PRE>
public void <B>setUse</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>setUse
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - String representing a use ("literal", "encoded")
              Note that the case of the string is not important. "literal" and "LITERAL"
              are both treated as literal use.
              If the value is not a know use, the default setting is used.
              See org.apache.axis.constants.Style for a description of the interaction between
              Style/Use</DL>
</DD>
</DL>
<HR>

<A NAME="setUse(org.apache.axis.constants.Use)"><!-- --></A><H3>
setUse</H3>
<PRE>
public void <B>setUse</B>(<A HREF="../../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>&nbsp;value)</PRE>
<DL>
<DD>setUse
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - Use setting</DL>
</DD>
</DL>
<HR>

<A NAME="setMode(int)"><!-- --></A><H3>
setMode</H3>
<PRE>
public void <B>setMode</B>(int&nbsp;mode)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>(use setStyle and setUse)</I>
<P>
<DD>setMode (sets style and use)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mode</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getMode()"><!-- --></A><H3>
getMode</H3>
<PRE>
public int <B>getMode</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>(use getStyle and getUse)</I>
<P>
<DD>getMode (gets the mode based on the style setting)
<P>
<DD><DL>

<DT><B>Returns:</B><DD>returns the mode (-1 if invalid)</DL>
</DD>
</DL>
<HR>

<A NAME="getServiceDesc()"><!-- --></A><H3>
getServiceDesc</H3>
<PRE>
public <A HREF="../../../../../org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A> <B>getServiceDesc</B>()</PRE>
<DL>
<DD>Method getServiceDesc
<P>
<DD><DL>

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

<A NAME="setServiceDesc(org.apache.axis.description.ServiceDesc)"><!-- --></A><H3>
setServiceDesc</H3>
<PRE>
public void <B>setServiceDesc</B>(<A HREF="../../../../../org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>&nbsp;serviceDesc)</PRE>
<DL>
<DD>Method setServiceDesc
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>serviceDesc</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getExtraClasses()"><!-- --></A><H3>
getExtraClasses</H3>
<PRE>
public java.lang.Class[] <B>getExtraClasses</B>()</PRE>
<DL>
<DD>Return the list of extra classes that the emitter will produce WSDL for.
<P>
<DD><DL>

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

<A NAME="setExtraClasses(java.lang.Class[])"><!-- --></A><H3>
setExtraClasses</H3>
<PRE>
public void <B>setExtraClasses</B>(java.lang.Class[]&nbsp;extraClasses)</PRE>
<DL>
<DD>Provide a list of classes which the emitter will produce WSDL
 type definitions for.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>extraClasses</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="setExtraClasses(java.lang.String)"><!-- --></A><H3>
setExtraClasses</H3>
<PRE>
public void <B>setExtraClasses</B>(java.lang.String&nbsp;text)
                     throws java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Provide a comma or space seperated list of classes which
 the emitter will produce WSDL type definitions for.
 The classes will be added to the current list.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - 
<DT><B>Throws:</B>
<DD><CODE>java.lang.ClassNotFoundException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setEmitAllTypes(boolean)"><!-- --></A><H3>
setEmitAllTypes</H3>
<PRE>
public void <B>setEmitAllTypes</B>(boolean&nbsp;emitAllTypes)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getVersionMessage()"><!-- --></A><H3>
getVersionMessage</H3>
<PRE>
public java.lang.String <B>getVersionMessage</B>()</PRE>
<DL>
<DD>Return the version message
<P>
<DD><DL>

<DT><B>Returns:</B><DD>message or null if emitter will use the default</DL>
</DD>
</DL>
<HR>

<A NAME="setVersionMessage(java.lang.String)"><!-- --></A><H3>
setVersionMessage</H3>
<PRE>
public void <B>setVersionMessage</B>(java.lang.String&nbsp;versionMessage)</PRE>
<DL>
<DD>Set the version message that appears at the top of the WSDL
 If not set, we use the default version message.
 If set to an empty string, no version message will be emitted
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>versionMessage</CODE> - the message to emit</DL>
</DD>
</DL>
<HR>

<A NAME="getQName2ClassMap()"><!-- --></A><H3>
getQName2ClassMap</H3>
<PRE>
public java.util.HashMap <B>getQName2ClassMap</B>()</PRE>
<DL>
<DD>Return the type qname to java type mapping
<P>
<DD><DL>

<DT><B>Returns:</B><DD>mapping of type qname to its corresponding java type</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/Emitter.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/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava"><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="Emitter.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>
