You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2007/01/31 07:17:48 UTC

svn commit: r501744 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c: BeanParamWriter.java ClientStubWriter.java literal/ClientStubWriter.java

Author: nadiramra
Date: Tue Jan 30 22:17:47 2007
New Revision: 501744

URL: http://svn.apache.org/viewvc?view=rev&rev=501744
Log:
Remove redundant code between literal and encoded and sync up so that the code
is easier to compare.

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Tue Jan 30 22:17:47 2007
@@ -34,6 +34,7 @@
 
 /**
  * Genarate a webservice for the complex types likes structs.
+ * 
  * @author hemapani
  */
 
@@ -64,11 +65,34 @@
             throw new WrapperFault(e);
         }
     }
+    
+    private void writeSerializeExtensionCode()  throws IOException, WrapperFault
+    {
+        // TODO: xsd:extension not fully or correctly supported.
+        if (extensionBaseAttrib != null)
+        {
+            String typeName = extensionBaseAttrib.getTypeName(); 
 
-    /**
-     * @throws IOException
-     * @throws WrapperFault
-     */
+            if (extensionBaseAttrib.isSimpleType())
+            {
+                writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ,(void*)");                
+                if (!CUtils.isPointerType(typeName))
+                    writer.write("&");                
+                writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember() + "), "
+                        + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
+            }
+            else
+            {
+                // TODO
+            }
+        }        
+        else if (attribs.length == 0)
+        {
+            System.out.println("Possible error in class " + classname
+                    + ": class with no attributes or elements...........");
+        }        
+    }
+    
     private void writeSerializeGlobalMethod() throws IOException, WrapperFault
     {
         writer.write("\n");
@@ -76,49 +100,30 @@
         writer.write(" * This static method serializes a " + classname + " type of object\n");
         writer.write(" */\n");
         writer.write("int Axis_Serialize_" + classname
-                + "(" + classname + "* param, AXISCHANDLE pSZ, AxiscBool bArray)\n{\n");
+                + "(" + classname + "* param, AXISCHANDLE pSZ, AxiscBool bArray)\n");
+        writer.write( "{\n");
         
+        //=============================================================================
+        // No attributes or elements to serialize? Then serialize extension and return.
+        //=============================================================================        
+
         if (attribs.length == 0)
         {
             writer.write("\taxiscSoapSerializerSerialize(pSZ,\">\", NULL);\n");
 
-            if (extensionBaseAttrib != null)
-            {
-                String typeName = extensionBaseAttrib.getTypeName();
-                
-                if (extensionBaseAttrib.isSimpleType())
-                {                
-                    writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ,(void*)");
-                    
-                    if (!CUtils.isPointerType(typeName))
-                        writer.write("&");
-                    
-                    writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember()
-                            + "), " + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
-                }
-                else
-                {
-                    // TODO
-                }
-            } 
-            else
-            {
-                System.out.println("Possible error in class " + classname
-                        + ": class with no attributes....................");
-            }
+            writeSerializeExtensionCode();
             
             writer.write("\treturn AXISC_SUCCESS;\n");
             writer.write("}\n\n");
             return;
         }
-
-        String arrayType;
         
+        //=============================================================================
+        // NULL param passed in? Assume nillable although type does not know whether
+        // it is used as a nillable parameter so this may not be the appropriate place
+        // to put this, or we need to find a way to determine if nillable.
+        //=============================================================================        
         
-        /*
-         * A type does not know whether it is used as a nillable parameter So
-         * this may not be the appropriate place to do this
-         */
         writer.write("\tAxiscBool blnIsNewPrefix = xsdc_boolean_false;\n\n");
         
         writer.write("\tif ( param == NULL )\n\t{\n");
@@ -126,14 +131,22 @@
         writer.write("\t\taxiscSoapSerializerSerialize(pSZ, \">\", NULL);\n");
         writer.write("\t\treturn AXISC_SUCCESS;\n");
         writer.write("\t}\n\n");
-        /*
-         * This is the only real difference for the serializer between rpc/encoded and doc/literal objects
-         */
+        
+        //=============================================================================
+        // Serialize 
+        // This is the only real difference for the serializer between rpc/encoded and 
+        // doc/literal objects
+        //=============================================================================        
+        
         if (wscontext.getWrapInfo().getWrapperStyle().equals("rpc"))
             writeRPCArrayPortionOfSerializeGlobalMethod();
         else
             writeDOCArrayPortionOfSerializeGlobalMethod();
 
+        //=============================================================================
+        // Serialize attributes, if any
+        //=============================================================================        
+
         writer.write("\t/* If there are any attributes serialize them. If there aren't then close the tag */\n");
         for (int i = 0; i < attributeParamCount; i++)
         {
@@ -186,7 +199,11 @@
                 }
             }
         }
-        
+
+        //=============================================================================
+        // Serialization relating to faults
+        //=============================================================================                           
+                        
         if (type.isFault())
         {
             writer.write("\tif(Axis_URI_" + classname + ")\n\t{\n");
@@ -201,29 +218,21 @@
         if(wscontext.getWrapInfo().getWrapperStyle().equals("document"))
             writer.write("\taxiscSoapSerializerSerialize(pSZ, \">\", 0);\n");
         
-        if (extensionBaseAttrib != null)
-        {
-            String typeName = extensionBaseAttrib.getTypeName(); 
-            
-            if (extensionBaseAttrib.isSimpleType())
-            {
-                writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ, (void*)");
-                if (!CUtils.isPointerType(typeName))
-                    writer.write("&");
-
-                writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember() + "), "
-                        + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
-            }
-            else
-            {
-                // TODO
-            }
-        }
-
+        //=============================================================================
+        // Serialize extension, if any
+        //=============================================================================                           
+        
+        writeSerializeExtensionCode();
+
+        //=============================================================================
+        // Serialize elements, if any
+        //=============================================================================    
+        
         writer.write("\n\t/* then serialize elements if any*/\n");
 
         boolean firstIfWritten = false;
         int anyCounter = 0; //counter for any types.
+        String arrayType;
         
         for (int i = attributeParamCount; i < attribs.length; i++)
         {
@@ -233,11 +242,9 @@
                 sanitizedAttrName += "_Ref";
             attribs[i].setParamName(sanitizedAttrName);
 
-            String namespace = "";
+            String namespace = "NULL";
             if (attribs[i].getNsQualified())
                 namespace = "Axis_URI_" + classname;
-            else
-                namespace = "NULL";
             
             // if the attribute is a choice following should do
             if (attribs[i].getChoiceElement())
@@ -399,7 +406,11 @@
                 if (attribs[i].getMinOccurs() == 0)
                     writer.write("\t}\n");
         }
-
+        
+        //=============================================================================
+        // End of attribute and element serialization
+        //=============================================================================                
+                
         if (wscontext.getWrapInfo().getWrapperStyle().equals("rpc"))
         {
             writer.write("\n\taxiscSoapSerializerSerialize(pSZ, \"</\", Axis_TypeName_" + classname
@@ -471,6 +482,42 @@
         writer.write("\t}\n\n");
     }
 
+    private void writeDeSerializeExtensionCode() throws IOException, WrapperFault
+    {  
+        if (extensionBaseAttrib != null
+                && extensionBaseAttrib.getTypeName() != null)
+        {
+            if (extensionBaseAttrib.isSimpleType())
+            {
+                writer.write("\t{\n"); // ==== begin scope
+                writer.write("\tvoid* pCharDataAs;\n\n");
+                String typeName = extensionBaseAttrib.getTypeName();
+                String xsdType = CUtils.getXSDTypeForBasicType(typeName);
+                writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
+                writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
+                
+                if (CUtils.isPointerType(typeName))
+                    writer.write("(" + typeName + ") pCharDataAs;\n");
+                else
+                {
+                    writer.write(" *(" + typeName + "*) pCharDataAs;\n");
+                    writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
+                }      
+                writer.write("\t}\n"); // ==== end scope
+            }
+            else
+            {
+                // TODO
+            }
+        }
+        else if (attribs.length == 0)
+        {
+            System.out.println("Possible error in class " + classname
+                    + ": class with no attributes or elements............");
+            
+        }
+    }    
+    
     private void writeDeSerializeGlobalMethod() throws IOException, WrapperFault
     {
         writer.write("\n");
@@ -479,43 +526,24 @@
         writer.write(" */\n");
         writer.write("int Axis_DeSerialize_" + classname
                 + "(" + classname + "* param, AXISCHANDLE pDZ)\n{\n");
-        
+
+        //=============================================================================
+        // No attributes or elements to deserialize? Then deserialize extension and return.
+        //=============================================================================        
+       
         if (attribs.length == 0)
         {
-            if (extensionBaseAttrib != null)
-            {
-                if (extensionBaseAttrib.isSimpleType())
-                {
-                    writer.write("\tvoid* pCharDataAs;\n\n");
-                    String typeName = extensionBaseAttrib.getTypeName();
-                    String xsdType = CUtils.getXSDTypeForBasicType(typeName);
-                    writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
-                    writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
-                    
-                    if (CUtils.isPointerType(typeName))
-                        writer.write("(" + typeName + ") pCharDataAs;\n");
-                    else
-                    {
-                        writer.write(" *(" + typeName + "*) pCharDataAs;\n");
-                        writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
-                    }     
-                }
-                else
-                {
-                    // TODO
-                }
-            }
-            else
-            {
-                System.out.println("Possible error in class " + classname
-                        + ": class with no attributes....................");
-            }
+            writeDeSerializeExtensionCode();
 
             writer.write("\treturn AXISC_SUCCESS;\n");
             writer.write("}\n\n");
             return;
         }  
 
+        //=============================================================================
+        // Deserialize attributes and elements.
+        //=============================================================================        
+        
         String arrayType = null;
         boolean peekCalled = false;
         boolean firstIfWritten = false;
@@ -740,33 +768,12 @@
             
             writer.write("\n");
         }
+
+        //=============================================================================
+        // Deserialize extension, if any, and return status
+        //=============================================================================                           
         
-        if (extensionBaseAttrib != null
-                && extensionBaseAttrib.getTypeName() != null)
-        {
-            if (extensionBaseAttrib.isSimpleType())
-            {
-                writer.write("\t{\n"); // ==== begin scope
-                writer.write("\tvoid* pCharDataAs;\n");
-                String typeName = extensionBaseAttrib.getTypeName();
-                String xsdType = CUtils.getXSDTypeForBasicType(typeName);
-                writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
-                writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
-                
-                if (CUtils.isPointerType(typeName))
-                    writer.write("(" + typeName + ") pCharDataAs;\n");
-                else
-                {
-                    writer.write(" *(" + typeName + "*) pCharDataAs;\n");
-                    writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
-                }    
-                writer.write("\t}\n"); // ==== end scope
-            }
-            else
-            {
-                // TODO
-            }
-        }
+        writeDeSerializeExtensionCode();
         
         writer.write("\t/* Return deserialization status */\n");
         writer.write("\treturn axiscSoapDeSerializerGetStatus(pDZ);\n");
@@ -970,9 +977,6 @@
         }
     }
     
-    /* (non-Javadoc)
-     * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#getFilePath(boolean)
-     */
     protected File getFilePath(boolean useServiceName) throws WrapperFault
     {
         return null;

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java Tue Jan 30 22:17:47 2007
@@ -33,6 +33,7 @@
 import org.apache.axis.wsdl.wsdl2ws.CUtils;
 import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
 import org.apache.axis.wsdl.wsdl2ws.WrapperUtils;
+import org.apache.axis.wsdl.wsdl2ws.info.FaultInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo;
 import org.apache.axis.wsdl.wsdl2ws.info.Type;
@@ -70,20 +71,20 @@
             throw new WrapperFault(e);
         }
     }
-
-    /* (non-Javadoc)
+    /* 
      * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeMethods()
+     * Used by literal code too!
      */
     protected void writeMethods() throws WrapperFault
     {
         try
-        {
+          {
             writer.write("\n");
             writer.write("/* ================================================== */\n" +
                          "/* Functions relating to web service client proxy     */\n" +
                          "/* ================================================== */\n");
             writer.write("\n");
-
+            
             // get_xxx_stub() routine
             writer.write("AXISCHANDLE get_" + classname + "_stub(const char* pchEndPointUri)\n{\n");
             writer.write("\tif(pchEndPointUri)\n");
@@ -102,27 +103,31 @@
             writer.write("int get_" + classname + "_Status(AXISCHANDLE stub)\n{\n");
             writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
             writer.write("\treturn axiscCallGetStatus(call);\n");
-            writer.write("}\n");
+            writer.write("}\n\n");
 
+            writer.write("void set_" + classname 
+                    + "_ExceptionHandler(AXISCHANDLE stub, AXIS_EXCEPTION_HANDLER_FUNCT fp)\n{\n");          
+            writer.write("\taxiscStubSetCExceptionHandler(stub, (void *)fp);\n");          
+            writer.write("}\n");
+            
             writer.write("\n");
             writer.write("/* ================================================== */\n" +
                          "/* Functions corresponding to the web service methods */\n" +
                          "/* ================================================== */\n");
             writer.write("\n");
-
+            
             MethodInfo minfo;
             for (int i = 0; i < methods.size(); i++)
             {
-                minfo = (MethodInfo) methods.get(i);
-                this.writeMethodInWrapper(minfo);
-                writer.write("\n");
+                  minfo = (MethodInfo) methods.get(i);
+                  this.writeMethodInWrapper(minfo);
+                  writer.write("\n");
             }
-
-        }
+          }
         catch (IOException e)
-        {
+          {
             throw new WrapperFault(e);
-        }
+          }
     }
 
     /* (non-Javadoc)
@@ -665,8 +670,61 @@
         writer.write("}\n");        
     }
 
+
+    /*
+     * Used by literal code too!
+     */
+    protected void writeFaultHandlingCode(MethodInfo minfo) throws WrapperFault, IOException
+    {  
+        writer.write ("\taxiscCallSetSoapFaultNamespace(call, \"" 
+                + wscontext.getWrapInfo ().getTargetEndpointURI () + "\");\n");
+        
+        //to get fault info             
+        Iterator paramsFault = minfo.getFaultType ().iterator ();
+        String faultInfoName = null;
+        String langName = null;
+        
+        while (paramsFault.hasNext ())
+        {
+            FaultInfo info = (FaultInfo) paramsFault.next ();
+            faultInfoName = info.getFaultInfo ();
+
+            // FJP - D0004 > Looking through the list of attributes for the 'error' part of
+            //               the fault message.  If found, update the faultInfoName with the
+            //               'localname' of the qname of the attribute.                         
+            Iterator infoArrayListIterator = info.getParams ().iterator ();
+            boolean found = false;
+
+            while (infoArrayListIterator.hasNext () && !found)
+            {
+                ParameterInfo paramInfo = (ParameterInfo) infoArrayListIterator.next ();
+        
+                if (paramInfo != null)
+                    if ("error".equals (paramInfo.getParamName ()))
+                    {
+                        faultInfoName = paramInfo.getElementName ().getLocalPart ();
+                        found = true;
+                    }
+            }
+
+            ArrayList paramInfo = info.getParams ();
+            for (int i = 0; i < paramInfo.size (); i++)
+            {
+                ParameterInfo par = (ParameterInfo) paramInfo.get (i);
+                langName = par.getLangName ();
+
+                writer.write ("\taxiscCallAddSoapFaultToList(call, \"" 
+                        + faultInfoName + "\", "
+                        + "(void*) Axis_Create_" + langName + ", "
+                        + "(void*) Axis_Delete_" + langName + ", "                    
+                        + "(void*) Axis_DeSerialize_" + langName + ");\n");
+            }
+        }
+    }    
+    
     /* (non-Javadoc)
      * @see org.apache.axis.wsdl.wsdl2ws.cpp.CPPClassWriter#writeGlobalCodes()
+     * Used by literal code too!
      */
     protected void writeGlobalCodes() throws WrapperFault
     {

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java Tue Jan 30 22:17:47 2007
@@ -43,80 +43,17 @@
 public class ClientStubWriter
     extends org.apache.axis.wsdl.wsdl2ws.c.ClientStubWriter
 {
-  /**
-   * @param wscontext
-   * @throws WrapperFault
-   */
   public ClientStubWriter(WebServiceContext wscontext) throws WrapperFault
   {
       super(wscontext);
   }
 
-  /* (non-Javadoc)
-   * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeMethods()
-   */
-  protected void writeMethods() throws WrapperFault
-  {
-      try
-        {
-          writer.write("\n");
-          writer.write("/* ================================================== */\n" +
-                       "/* Functions relating to web service client proxy     */\n" +
-                       "/* ================================================== */\n");
-          writer.write("\n");
-          
-          // get_xxx_stub() routine
-          writer.write("AXISCHANDLE get_" + classname + "_stub(const char* pchEndPointUri)\n{\n");
-          writer.write("\tif(pchEndPointUri)\n");
-          writer.write("\t\treturn axiscStubCreate(pchEndPointUri, AXISC_APTHTTP1_1);\n");
-          writer.write("\telse\n");
-          writer.write("\t\treturn axiscStubCreate(\"" 
-                  + wscontext.getWrapInfo().getTargetEndpointURI() 
-                  + "\", AXISC_APTHTTP1_1);\n");
-          writer.write("}\n\n");
-          
-          // destroy_xxxx_stub()
-          writer.write("void destroy_" + classname + "_stub(AXISCHANDLE p)\n{\n");
-          writer.write("\taxiscStubDestroy(p);\n}\n\n");
-
-          // get_xxxx_Status() routine
-          writer.write("int get_" + classname + "_Status(AXISCHANDLE stub)\n{\n");
-          writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
-          writer.write("\treturn axiscCallGetStatus(call);\n");
-          writer.write("}\n\n");
-
-          writer.write("void set_" + classname 
-                  + "_ExceptionHandler(AXISCHANDLE stub, AXIS_EXCEPTION_HANDLER_FUNCT fp)\n{\n");          
-          writer.write("\taxiscStubSetCExceptionHandler(stub, (void *)fp);\n");          
-          writer.write("}\n");
-          
-          writer.write("\n");
-          writer.write("/* ================================================== */\n" +
-                       "/* Functions corresponding to the web service methods */\n" +
-                       "/* ================================================== */\n");
-          writer.write("\n");
-          
-          MethodInfo minfo;
-          for (int i = 0; i < methods.size(); i++)
-          {
-                minfo = (MethodInfo) methods.get(i);
-                this.writeMethodInWrapper(minfo);
-                writer.write("\n");
-          }
-        }
-      catch (IOException e)
-        {
-          throw new WrapperFault(e);
-        }
-  }
-
   /**
    * This method genarate methods that wraps the each method of the service
    * @param MethodInfo
    * @throws IOException
    * @throws WrapperFault
    * 
-   * @see org.apache.axis.wsdl.wsdl2ws.c.ClientStubWriter#writeMethodInWrapper(org.apache.axis.wsdl.wsdl2ws.info.MethodInfo) 
    */
 
     public void writeMethodInWrapper(MethodInfo minfo) throws WrapperFault, IOException
@@ -160,14 +97,16 @@
         if (returntype != null)
             returntypeissimple = CUtils.isSimpleType(outparamType);
 
+        //=============================================================================
+        // Generate method prototype
+        //=============================================================================        
+        
         writer.write("\n/*\n");
         writer.write(" * This function wraps the service method " + methodName + "\n");
         writer.write(" */\n");
         
-        // ===================================================================
-        // generate function parameters
-        // ===================================================================
-        String paraTypeName;
+        //method signature
+        String paramTypeName;
         boolean typeisarray = false;
         boolean typeissimple = false;
         Type type;
@@ -180,7 +119,7 @@
             writer.write(outparamType);
         else if (outparamType.lastIndexOf("*") > 0)
             writer.write(outparamType);
-        else // for AnyType too
+        else 
             writer.write(outparamType + "*");
    
         writer.write(" " + methodName + "(AXISCHANDLE stub");
@@ -198,31 +137,31 @@
                 if (type.isSimpleType ())
                 {        
                     baseTypeName = CUtils.getclass4qname (type.getBaseType ());
-                    paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+                    paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
                 }
                 else
                 {
-                    paraTypeName = type.getLanguageSpecificName ();
-                    if (CUtils.isSimpleType (paraTypeName))
-                        paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+                    paramTypeName = type.getLanguageSpecificName ();
+                    if (CUtils.isSimpleType (paramTypeName))
+                        paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
 
-                    typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
+                    typeisarray = (paramTypeName.lastIndexOf ("_Array") > 0);
                     if (!typeisarray)
-                        paraTypeName = type.getLanguageSpecificName ();
+                        paramTypeName = type.getLanguageSpecificName ();
 
-                    typeissimple = CUtils.isSimpleType (paraTypeName);
+                    typeissimple = CUtils.isSimpleType (paramTypeName);
                 }
                 typeisarray |= type.isArray ();
             }
             else
             {
-                paraTypeName = ((ParameterInfo) paramsB.get (0)).getLangName ();
+                paramTypeName = ((ParameterInfo) paramsB.get (0)).getLangName ();
                 paramtype = (ParameterInfo) paramsB.get (0);
                 typeisarray = false;
             }
             
             if (baseTypeName == null)
-                baseTypeName = paraTypeName;
+                baseTypeName = paramTypeName;
 
             typeissimple = CUtils.isSimpleType (baseTypeName);
             if (paramtype.getType().isAttachment())
@@ -231,12 +170,12 @@
                     && (!(((ParameterInfo) paramsB.get (0)).isNillable () || ((ParameterInfo) paramsB.get (0)).isOptional())
                             || CUtils.isPointerType(baseTypeName)))
             {
-                writer.write (paraTypeName + " Value0");
+                writer.write (paramTypeName + " Value0");
             }
-            else if (paraTypeName.lastIndexOf ("*") > 0)
-                writer.write (paraTypeName + " Value0");
+            else if (paramTypeName.lastIndexOf ("*") > 0)
+                writer.write (paramTypeName + " Value0");
             else //for AnyType too
-                writer.write (paraTypeName + "* Value0");
+                writer.write (paramTypeName + "* Value0");
 
             for (int i = 1; i < paramsB.size (); i++)
             {
@@ -248,31 +187,31 @@
                     if (type.isSimpleType ())
                     {        //schema defined simpleType
                         baseTypeName = CUtils.getclass4qname (type.getBaseType ());
-                        paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+                        paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
                     }
                     else
                     {
-                        paraTypeName = type.getLanguageSpecificName ();
-                        if (CUtils.isSimpleType (paraTypeName))
-                            paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+                        paramTypeName = type.getLanguageSpecificName ();
+                        if (CUtils.isSimpleType (paramTypeName))
+                            paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
 
-                        typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
+                        typeisarray = (paramTypeName.lastIndexOf ("_Array") > 0);
                         if (!typeisarray)
-                            paraTypeName = type.getLanguageSpecificName ();       
+                            paramTypeName = type.getLanguageSpecificName ();       
                     }
                     
                     typeisarray |= type.isArray ();
-                    typeissimple = CUtils.isSimpleType (paraTypeName);
+                    typeissimple = CUtils.isSimpleType (paramTypeName);
                 }
                 else
                 {
-                    paraTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
+                    paramTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
                     paramtype = (ParameterInfo) paramsB.get (i);
                     typeisarray = false;
                 }
                 
                 if (baseTypeName == null)
-                    baseTypeName = paraTypeName;
+                    baseTypeName = paramTypeName;
 
                 typeissimple = CUtils.isSimpleType (baseTypeName);
                 if (paramtype.getType().isAttachment())
@@ -281,11 +220,11 @@
                             && (!(((ParameterInfo) paramsB.get (i)).isNillable () 
                                     || ((ParameterInfo) paramsB.get (i)).isOptional())
                                         || CUtils.isPointerType(baseTypeName)))
-                    writer.write (", " + paraTypeName + " Value" + i);
-                else if (paraTypeName.lastIndexOf ("*") > 0)
-                    writer.write (", " + paraTypeName + " Value" + i);
+                    writer.write (", " + paramTypeName + " Value" + i);
+                else if (paramTypeName.lastIndexOf ("*") > 0)
+                    writer.write (", " + paramTypeName + " Value" + i);
                 else //for AnyType too
-                    writer.write (", " + paraTypeName + "* Value" + i);
+                    writer.write (", " + paramTypeName + "* Value" + i);
             } // end for loop
         } // end if (0 < paramsB.size ())
         
@@ -331,9 +270,9 @@
         
         writer.write(")\n{\n");
         
-        // ===================================================================
-        // start of function body
-        // ===================================================================
+        //=============================================================================
+        // Generate global variables 
+        //=============================================================================   
         
         writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
         
@@ -379,16 +318,23 @@
                 else
                     writer.write(outparamType + " Ret;\n");
             }
-            // TODO initialize return parameter appropriately.
         }
         
         writer.write("\n");
-
+        
+        //=============================================================================
+        // Generate fault handling code
+        //=============================================================================        
+                
         writeFaultHandlingCode(minfo);
         writer.write("\n");        
         
-        
-        writer.write("\tif (AXISC_SUCCESS != axiscCallInitialize(call, C_DOC_PROVIDER " + ")) return ");
+        //=============================================================================
+        // Generate method logic
+        //=============================================================================        
+                        
+        writer.write("\tif (AXISC_SUCCESS != axiscCallInitialize(call, C_DOC_PROVIDER " + "))\n");
+        writer.write("\t\treturn ");
         if (returntype != null)
             writer.write((returntypeisarray ? "RetArray" : returntypeissimple ? "Ret" : "pReturn") + ";\n");
         else
@@ -444,6 +390,7 @@
         writer.write ("\taxiscStubApplyUserPreferences(stub);\n");
         writer.write("\n");
         
+        // Process elements
         for (int i = 0; i < paramsB.size(); i++)
         {
             ParameterInfo param = (ParameterInfo) paramsB.get(i);
@@ -452,28 +399,28 @@
             if (param.isAttribute ())
                 continue;
             
-            // Add elements
+            // add elements
             type = wscontext.getTypemap().getType(param.getSchemaName());
             if (type != null)
             {
                 if (type.isSimpleType())
-                    paraTypeName = CUtils.getclass4qname(type.getBaseType());
+                    paramTypeName = CUtils.getclass4qname(type.getBaseType());
                 else
                 {
-                    paraTypeName = type.getLanguageSpecificName();
-                    if (CUtils.isSimpleType(paraTypeName))
-                        paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(param,wscontext);
+                    paramTypeName = type.getLanguageSpecificName();
+                    if (CUtils.isSimpleType(paramTypeName))
+                        paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(param,wscontext);
                     
-                    typeisarray = (paraTypeName.lastIndexOf("_Array") > 0);
+                    typeisarray = (paramTypeName.lastIndexOf("_Array") > 0);
                     if (!typeisarray)
-                        paraTypeName = type.getLanguageSpecificName();
+                        paramTypeName = type.getLanguageSpecificName();
                 }
                 
                 typeisarray |= type.isArray();
             }
             else
             {
-                paraTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
+                paramTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
                 typeisarray = false;
             }
  
@@ -563,21 +510,21 @@
                             writer.write ("Axis_URI_" + containedType);
                     }
                 }
-                else if (CUtils.isSimpleType (paraTypeName))
+                else if (CUtils.isSimpleType (paramTypeName))
                 {
                     if (param.isNillable () 
                             || param.isOptional()
-                            || CUtils.isPointerType(paraTypeName))
+                            || CUtils.isPointerType(paramTypeName))
                     {
                         writer.write ("\taxiscCallAddParameter(call,");
                         writer.write ("(void*)Value" + i + ", cPrefixAndParamName" + i
-                                  + ", " + CUtils.getXSDTypeForBasicType(paraTypeName));
+                                  + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
                     else
                     {
                         writer.write ("\taxiscCallAddParameter(call,");
                         writer.write ("(void*)&Value" + i + ", cPrefixAndParamName" + i
-                                  + ", " + CUtils.getXSDTypeForBasicType(paraTypeName));
+                                  + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
                 }
                 else
@@ -585,9 +532,9 @@
                     // Complex Type
                     writer.write ("\taxiscCallAddCmplxParameter(call,");
                     writer.write ("Value" + i
-                          + ", (void*)Axis_Serialize_" + paraTypeName
-                          + ", (void*)Axis_Delete_" + paraTypeName
-                          + ", cPrefixAndParamName" + i + ", Axis_URI_" + paraTypeName);
+                          + ", (void*)Axis_Serialize_" + paramTypeName
+                          + ", (void*)Axis_Delete_" + paramTypeName
+                          + ", cPrefixAndParamName" + i + ", Axis_URI_" + paramTypeName);
                 }              
             }
 
@@ -916,65 +863,11 @@
             writer.write ("\treturn pReturn;\n");
         }
         
-        // ===================================================================
-        // end of function body
-        // ===================================================================
-
+        //=============================================================================
+        // End of method
+        //=============================================================================        
+                       
         writer.write("}\n");
     }
 
-private void writeFaultHandlingCode(MethodInfo minfo) throws WrapperFault, IOException
-{  
-    writer.write ("\taxiscCallSetSoapFaultNamespace(call, \"" 
-            + wscontext.getWrapInfo ().getTargetEndpointURI () + "\");\n");
-    
-    //to get fault info             
-    Iterator paramsFault = minfo.getFaultType ().iterator ();
-    String faultInfoName = null;
-    String langName = null;
-    
-    while (paramsFault.hasNext ())
-    {
-        FaultInfo info = (FaultInfo) paramsFault.next ();
-        faultInfoName = info.getFaultInfo ();
-
-        // FJP - D0004 > Looking through the list of attributes for the 'error' part of
-        //               the fault message.  If found, update the faultInfoName with the
-        //               'localname' of the qname of the attribute.                         
-        Iterator infoArrayListIterator = info.getParams ().iterator ();
-        boolean found = false;
-
-        while (infoArrayListIterator.hasNext () && !found)
-        {
-            ParameterInfo paramInfo = (ParameterInfo) infoArrayListIterator.next ();
-    
-            if (paramInfo != null)
-                if ("error".equals (paramInfo.getParamName ()))
-                {
-                    faultInfoName = paramInfo.getElementName ().getLocalPart ();
-                    found = true;
-                }
-        }
-
-        ArrayList paramInfo = info.getParams ();
-        for (int i = 0; i < paramInfo.size (); i++)
-        {
-            ParameterInfo par = (ParameterInfo) paramInfo.get (i);
-            langName = par.getLangName ();
-
-            writer.write ("\taxiscCallAddSoapFaultToList(call, \"" 
-                    + faultInfoName + "\", "
-                    + "(void*) Axis_Create_" + langName + ", "
-                    + "(void*) Axis_Delete_" + langName + ", "                    
-                    + "(void*) Axis_DeSerialize_" + langName + ");\n");
-        }
-    }
-}
-
-    /* (non-Javadoc)
-     * @see org.apache.axis.wsdl.wsdl2ws.c.CFileWriter#writeGlobalCodes()
-     */
-    protected void writeGlobalCodes() throws WrapperFault 
-    {
-    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org