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/02/22 07:02:03 UTC

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

Author: nadiramra
Date: Wed Feb 21 22:02:02 2007
New Revision: 510407

URL: http://svn.apache.org/viewvc?view=rev&rev=510407
Log:
AXISCPP-542 (bad indentation) and AXISCPP-543 (no comments in generated code). First crack at
resolving both issues.

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
    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/literal/ClientStubWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java?view=diff&rev=510407&r1=510406&r2=510407
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java Wed Feb 21 22:02:02 2007
@@ -40,6 +40,8 @@
 import org.apache.axis.wsdl.wsdl2ws.info.TypeMap;
 import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
 import org.apache.axis.wsdl.symbolTable.CSchemaUtils;
+import java.io.BufferedWriter;
+import java.io.IOException;
 
 public class CUtils 
 {
@@ -1376,5 +1378,18 @@
         
         return sNew;
     }
+    
+    public static void printBlockComment(BufferedWriter writer, String s) throws IOException
+    {
+        writer.write("\n");
+        writer.write("\t// ======================================================================\n");
+        
+        // TODO: divide string into multiple lines if greater then 80, sensitive
+        //       to not break line in middle of word. for now all comments are one-liners.
+        writer.write("\t// " + s + "\n");
+        
+        writer.write("\t// ======================================================================\n");  
+        writer.write("\n");
+    }    
 }
 

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=510407&r1=510406&r2=510407
==============================================================================
--- 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 Wed Feb 21 22:02:02 2007
@@ -69,6 +69,8 @@
         // TODO: xsd:extension not fully or correctly supported.
         if (extensionBaseAttrib != null)
         {
+            CUtils.printBlockComment(writer, "Serialize extension.");
+            
             String typeName = extensionBaseAttrib.getTypeName(); 
 
             if (extensionBaseAttrib.isSimpleType())
@@ -107,6 +109,8 @@
 
         if (attribs.length == 0)
         {
+            CUtils.printBlockComment(writer, "No attributes or elements to serialize.");
+        
             writer.write("\taxiscSoapSerializerSerialize(pSZ,\">\", NULL);\n");
 
             writeSerializeExtensionCode();
@@ -123,12 +127,14 @@
         //=============================================================================        
         
         writer.write("\tAxiscBool blnIsNewPrefix = xsdc_boolean_false;\n\n");
+
+        CUtils.printBlockComment(writer, "If null input, serialize as nil element.");
         
         writer.write("\tif ( param == NULL )\n\t{\n");
         writer.write("\t\taxiscSoapSerializerSerializeAsAttribute(pSZ, \"xsi:nil\", 0, (void*)&(xsdc_boolean_true), XSDC_BOOLEAN);\n");
         writer.write("\t\taxiscSoapSerializerSerialize(pSZ, \">\", NULL);\n");
         writer.write("\t\treturn AXISC_SUCCESS;\n");
-        writer.write("\t}\n\n");
+        writer.write("\t}\n");
         
         //=============================================================================
         // Serialize 
@@ -145,7 +151,9 @@
         // Serialize attributes, if any
         //=============================================================================        
 
-        writer.write("\t/* If there are any attributes serialize them. If there aren't then close the tag */\n");
+        if (attributeParamCount > 0)
+            CUtils.printBlockComment(writer, "Serialize attributes.");
+        
         for (int i = 0; i < attributeParamCount; i++)
         {            
             if (attribs[i].isArray() || !(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType()))
@@ -160,11 +168,11 @@
                 basicType = attribs[i].getTypeName();
             
             if (attribs[i].isOptional())
-                writer.write("\tif (0 != param->" + attribs[i].getParamNameAsMember() + ")\n");
+                writer.write("\tif (0 != param->" + attribs[i].getParamNameAsMember() + ")\n\t");
 
             if (CUtils.isPointerType(basicType) || attribs[i].isOptional())
             {
-                writer.write("\t\taxiscSoapSerializerSerializeAsAttribute(pSZ,\""
+                writer.write("\taxiscSoapSerializerSerializeAsAttribute(pSZ,\""
                         + attribs[i].getParamNameAsSOAPString() + "\", 0, (void*)(param->"
                         + attribs[i].getParamNameAsMember() + "), "
                         + CUtils.getXSDTypeForBasicType(basicType) + ");\n");
@@ -172,10 +180,8 @@
             else
             {
                 writer.write("\taxiscSoapSerializerSerializeAsAttribute(pSZ,\""
-                        + attribs[i].getParamNameAsSOAPString()
-                        + "\", 0, (void*)&(param->"
-                        + attribs[i].getParamNameAsMember()
-                        + "), "
+                        + attribs[i].getParamNameAsSOAPString() + "\", 0, (void*)&(param->"
+                        + attribs[i].getParamNameAsMember() + "), "
                         + CUtils.getXSDTypeForBasicType(attribs[i].getTypeName()) + ");\n");
             }
         }
@@ -208,7 +214,8 @@
         // Serialize elements, if any
         //=============================================================================    
         
-        writer.write("\n\t/* then serialize elements if any*/\n");
+        if (attributeParamCount < attribs.length)
+            CUtils.printBlockComment(writer, "Serialize sub-elements.");
 
         boolean firstIfWritten = false;
         int anyCounter = 0; //counter for any types.
@@ -289,7 +296,7 @@
                     baseTypeName = typeName;
                 
                 if (attribs[i].isOptional())
-                    writer.write("\tif (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n\t\t{\n\t");
+                    writer.write("\tif (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n\t");
                 
                 if (CUtils.isPointerType(baseTypeName))
                 {
@@ -331,9 +338,6 @@
                             + ", (void*)&(param->" + attribs[i].getParamNameAsMember()
                             + "), " + CUtils.getXSDTypeForBasicType(baseTypeName) + ");\n");
                 }
-                
-                if (attribs[i].isOptional())
-                    writer.write("\t\t}\n");
             }
             else
             {
@@ -388,6 +392,8 @@
             writer.write("\n\taxiscSoapSerializerSerialize(pSZ, \"</\", Axis_TypeName_" + classname
                     + ", \">\", NULL);\n");
         }
+
+        CUtils.printBlockComment(writer, "Remove namespace, if new.");        
         
         writer.write("\n\tif (!bArray && blnIsNewPrefix)\n");
         writer.write("\t\taxiscSoapSerializerRemoveNamespacePrefix(pSZ, Axis_URI_" + classname + ");\n");
@@ -402,13 +408,15 @@
      */
     private void writeDOCArrayPortionOfSerializeGlobalMethod() throws IOException
     {
+        CUtils.printBlockComment(writer, "Serialize top-most element, possibly defining new namespace.");        
+        
         // For doc/literal objects
         writer.write("\tif (!bArray)\n\t{\n");
         writer.write("\t\tconst AxiscChar* sPrefix = axiscSoapSerializerGetNamespacePrefix(pSZ,Axis_URI_" + classname + ", &blnIsNewPrefix);\n");
         writer.write("\t\tif (blnIsNewPrefix)\n");
         writer.write("\t\t\taxiscSoapSerializerSerialize(pSZ,\" xmlns:\", sPrefix, \"=\\\"\", " 
                         + "Axis_URI_" + classname + ", \"\\\"\", NULL);\n");
-        writer.write("\t}\n\n");
+        writer.write("\t}\n");
     }
 
     /**
@@ -434,7 +442,7 @@
                     + "\" xsi:type=\\\"\", sPrefix, \":\", " 
                     + "Axis_TypeName_" + classname + ", \"\\\" xmlns:\", " 
                     + "sPrefix, \"=\\\"\", Axis_URI_" + classname + ", \"\\\">\", NULL);\n");
-        writer.write("\t}\n\n");
+        writer.write("\t}\n");
     }
 
     private void writeDeSerializeExtensionCode() throws IOException, WrapperFault
@@ -442,21 +450,23 @@
         if (extensionBaseAttrib != null
                 && extensionBaseAttrib.getTypeName() != null)
         {
+            CUtils.printBlockComment(writer, "Deserialize extension.");
+            
             if (extensionBaseAttrib.isSimpleType())
             {
                 writer.write("\t{\n"); // ==== begin scope
-                writer.write("\tvoid* pCharDataAs;\n\n");
+                writer.write("\t\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() + " = ");
+                writer.write("\t\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
+                writer.write("\t\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\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
                 }      
                 writer.write("\t}\n"); // ==== end scope
             }
@@ -494,12 +504,18 @@
             writer.write("}\n\n");
             return;
         }  
+        
+        // We always use this...
+        writer.write("\tconst char* peekedElementName;\n");
 
         //=============================================================================
         // Deserialize attributes.
         // Makes logic simpler to follow with slight duplication. TODO
         //=============================================================================        
         
+        if (attributeParamCount > 0)
+            CUtils.printBlockComment(writer, "Deserialize attributes.");
+        
         //=============================================================================
         // Deserialize attributes and elements.
         //=============================================================================        
@@ -511,8 +527,22 @@
         int anyCounter = 0; //counter for any types.
         int arrayCount = 0;
         
+        boolean handleAll = false;
+        boolean handleChoice = false;
+     
+        // Tabs to ensure code alignment
+        String tab1  = "\t";
+        String tab2Default = "";
+        String tab2;
+       
         for (int i = 0; i < attribs.length; i++)
         {       
+            // Reset tabs
+            tab2  = tab2Default + "\t";
+            
+            if (i == attributeParamCount)
+                CUtils.printBlockComment(writer, "Deserialize elements.");
+            
             //if the attribute is a 'choice' construct we have to peek and make
             // the choice
 
@@ -560,7 +590,7 @@
             if (attribs[i].isAnyType())
             {
                 anyCounter +=1;
-                writer.write("\tparam->any" + anyCounter + " = axiscSoapDeSerializerGetAnyObject(pDZ);\n");
+                writer.write(tab1 + "param->any" + anyCounter + " = axiscSoapDeSerializerGetAnyObject(pDZ);\n");
             }
             else if (attribs[i].isArray())
             {
@@ -574,16 +604,14 @@
                     else
                         baseTypeName = attribs[i].getTypeName();
 
-                    writer.write("\t/* If there is an existing array, delete it */\n");
-                    writer.write("\tif (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n");
-                    writer.write("\t{\n");
-                    writer.write("\t\taxiscAxisDelete(param->" + attribs[i].getParamNameAsMember() + ", XSDC_ARRAY);\n");
-                    writer.write("\t\tparam->" + attribs[i].getParamNameAsMember() + "= NULL;\n");
-                    writer.write("\t}\n");
+                    writer.write(tab1 + "if (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n");
+                    writer.write(tab1 + "{\n");
+                    writer.write(tab1 + "\taxiscAxisDelete(param->" + attribs[i].getParamNameAsMember() + ", XSDC_ARRAY);\n");
+                    writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + "= NULL;\n");
+                    writer.write(tab1 + "}\n");
                     writer.write("\n");
-                    
-                    writer.write("\t/* Deserialize array */\n");
-                    writer.write("\tparam->" + attribs[i].getParamNameAsMember() 
+                 
+                    writer.write(tab1 + "param->" + attribs[i].getParamNameAsMember() 
                             + " = (" + baseTypeName + "_Array *)" 
                             + "axiscSoapDeSerializerGetBasicArray(pDZ, " 
                             + CUtils.getXSDTypeForBasicType(baseTypeName) + ", \"" 
@@ -594,7 +622,7 @@
                 else
                 {
                     arrayType = attribs[i].getTypeName();
-                    writer.write("\taxiscSoapDeSerializerGetCmplxArray(pDZ, (Axisc_Array *)param->" + attribs[i].getParamNameAsMember() 
+                    writer.write(tab1 + "axiscSoapDeSerializerGetCmplxArray(pDZ, (Axisc_Array *)param->" + attribs[i].getParamNameAsMember() 
                             + ", (void*)Axis_DeSerialize_"  + arrayType 
                             + ", (void*)Axis_Create_" + arrayType 
                             + ", (void*)Axis_Delete_" + arrayType 
@@ -608,10 +636,10 @@
                 // We only peek for elements, not element attributes!
                 if (attribs[i].isOptional() && !attribs[i].isAttribute())
                 {
-                    writer.write("\n\t{\n"); // start new variable scope                    
-                    writer.write("\tconst char* elementName" + i + " = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
-                    writer.write("\tif(strcmp(elementName" + i + ", \"" + soapTagName + "\") == 0)\n");
-                    writer.write("\t{\n");
+                    writer.write(tab1 + "peekedElementName = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
+                    writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
+                    writer.write(tab1 + "{\n");
+                    tab2 += "\t";
                 }
                 
                 Type type = attribs[i].getType();
@@ -625,7 +653,7 @@
                         || attribs[i].isNillable() || isElementNillable(i) ||
                         isElementOptional(i) || isPointerType)
                 {
-                    writer.write("\tparam->"
+                    writer.write(tab2 + "param->"
                             + attribs[i].getParamNameAsMember() + " = "
                             + "axiscSoapDeSerializer"
                             + CUtils.getParameterGetValueMethodName(
@@ -636,27 +664,30 @@
                 {
                     String elementNameToSearchFor = attribs[i].isAttribute()? attribs[i].getParamNameAsSOAPString():attribs[i].getElementNameAsSOAPString();
                     
-                    writer.write("\t{\n");
-                    writer.write("\t" + attribs[i].getTypeName() + " * "
+                    writer.write(tab2 + "{\n"); // start local scope
+                    
+                    writer.write(tab2 + "\t" + attribs[i].getTypeName() + " * "
                         + attribs[i].getParamNameAsMember() + " = " 
                         + "axiscSoapDeSerializer"
                         + CUtils.getParameterGetValueMethodName(attribs[i].getTypeName(), attribs[i].isAttribute()) 
                         + "(pDZ, \"" + elementNameToSearchFor + "\",0);\n");
                     
-                    writer.write("\tif (" + attribs[i].getParamNameAsMember() + " != NULL)\n\t{\n");
-                    writer.write("\t\tparam->" + attribs[i].getParamNameAsMember() + " = *"
+                    writer.write(tab2 + "\tif (" + attribs[i].getParamNameAsMember() + " != NULL)\n");
+                    writer.write(tab2 + "\t{\n");
+                    writer.write(tab2 + "\t\tparam->" + attribs[i].getParamNameAsMember() + " = *"
                             + attribs[i].getParamNameAsMember() + ";\n");
 
                     if (CUtils.getXSDTypeForBasicType( attribs[i].getTypeName()).equals("XSDC_HEXBINARY")
                             || CUtils.getXSDTypeForBasicType( attribs[i].getTypeName()).equals("XSDC_BASE64BINARY"))
                     {
-                        writer.write( "\t\t" + attribs[i].getParamNameAsMember() + "->__ptr = NULL;\n");
+                        writer.write(tab2 + "\t\t" + attribs[i].getParamNameAsMember() + "->__ptr = NULL;\n");
                     }
                     
-                    writer.write("\t\taxiscAxisDelete( (void *) " + attribs[i].getParamNameAsMember() 
+                    writer.write(tab2 + "\t\taxiscAxisDelete( (void *) " + attribs[i].getParamNameAsMember() 
                             + ", " + CUtils.getXSDTypeForBasicType( attribs[i].getTypeName()) + ");\n");
-                    writer.write("\t}\n");  
-                    writer.write("\t}\n");                    
+                    writer.write(tab2 + "\t}\n");
+                    
+                    writer.write(tab2 + "}\n");  // end local scope                
                 }
                 
                 if (attribs[i].isOptional() && !attribs[i].isAttribute())
@@ -664,24 +695,21 @@
                     writer.write("\t\t\t}\n");
                     writer.write("\t\telse\n");
                     writer.write("\t\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
-                    writer.write("\n");
-                    writer.write("\n\t}\n"); // end new variable scope
                 }
             }
             else
             {
                 //if complex type
                 String soapTagName = attribs[i].getParamNameAsSOAPString();
-                writer.write("\n\t{\n"); // start new variable scope
                 
                 if (attribs[i].isOptional())
                 {
-                    writer.write("\tconst char* elementName" + i + " = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
-                    writer.write("\tif(strcmp(elementName" + i + ", \"" + soapTagName + "\") == 0)\n");
-                    writer.write("\t{\n");
+                    writer.write(tab1 + "peekedElementName = axiscSoapDeSerializerPeekNextElementName(pDZ);\n");
+                    writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
+                    tab2 += "\t";
                 }
 
-                writer.write("\tparam->" + attribs[i].getParamNameAsMember() 
+                writer.write(tab2 + "param->" + attribs[i].getParamNameAsMember() 
                         + " = ("  + attribs[i].getTypeName()
                         + "*)axiscSoapDeSerializerGetCmplxObject(pDZ,(void*)Axis_DeSerialize_" + attribs[i].getTypeName()
                         + ", (void*)Axis_Create_" + attribs[i].getTypeName() 
@@ -690,17 +718,13 @@
                 
                 if (attribs[i].isOptional())
                 {
-                    writer.write("\t}\n");
-                    writer.write("\telse\n");
-                    writer.write("\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
-                    writer.write("\n");
+                    writer.write(tab1 + "else\n");
+                    writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
                 }      
-                
-                writer.write("\n\t}\n"); // end new variable scope
             }
 
             if (attribs[i].getChoiceElement())
-                writer.write("\t}\n");
+                writer.write(tab1 + "}\n");
             
             if (attribs[i].getAllElement())
                 if (attribs[i].getMinOccurs() == 0)
@@ -715,7 +739,6 @@
         
         writeDeSerializeExtensionCode();
         
-        writer.write("\t/* Return deserialization status */\n");
         writer.write("\treturn axiscSoapDeSerializerGetStatus(pDZ);\n");
         writer.write("}\n");
     }

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=510407&r1=510406&r2=510407
==============================================================================
--- 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 Wed Feb 21 22:02:02 2007
@@ -332,7 +332,9 @@
         //=============================================================================
         // Generate method logic
         //=============================================================================        
-                        
+
+        CUtils.printBlockComment(writer, "Initialize client engine, set SOAP version, SOAPAction, operation, etc.");
+        
         writer.write("\tif (AXISC_SUCCESS != axiscCallInitialize(call, C_DOC_PROVIDER " + "))\n");
         writer.write("\t\treturn ");
         if (returntype != null)
@@ -357,6 +359,7 @@
         }
 
         // Add attributes to soap method
+        boolean commentIssued=false;
         for (int i = 0; i < paramsB.size (); i++)
         {
             ParameterInfo param = (ParameterInfo) paramsB.get (i);
@@ -365,6 +368,14 @@
             if (!param.isAttribute ())
                 continue;
             
+            if (!commentIssued)
+            {
+                commentIssued = true;
+                CUtils.printBlockComment(writer, "Add attributes to soap method.");
+            }
+            else
+                writer.write ("\n");
+            
             // Process attributes
             String elementType = param.getElementName ().getLocalPart ();
     
@@ -385,20 +396,30 @@
         } // end for-loop
         
         // new calls from stub base
-        writer.write("\n");
+        CUtils.printBlockComment(writer, "Apply SSL configuration properties and user-set SOAP headers.");        
         writer.write ("\taxiscStubIncludeSecure(stub);\n");  
         writer.write ("\taxiscStubApplyUserPreferences(stub);\n");
-        writer.write("\n");
         
         // Process elements
+        commentIssued=false;
+        String tab2;
         for (int i = 0; i < paramsB.size(); i++)
         {
+            tab2 = "\t";
             ParameterInfo param = (ParameterInfo) paramsB.get(i);
 
             // Ignore attributes
             if (param.isAttribute ())
                 continue;
             
+            if (!commentIssued)
+            {
+                commentIssued = true;
+                CUtils.printBlockComment(writer, "Process parameters.");
+            }
+            else
+                writer.write ("\n");
+                        
             // add elements
             type = wscontext.getTypemap().getType(param.getSchemaName());
             if (type != null)
@@ -438,14 +459,14 @@
                 
                 if (namespace.length () == 0)
                 {
-                    writer.write ("\tchar cPrefixAndParamName"
+                    writer.write ("\t\tchar cPrefixAndParamName"
                               + i + "[" + "] = \"" + parameterName + "\";\n");
                 }
                 else
                 {
                     int stringLength = 8 + 1 + parameterName.length () + 1;
-                    writer.write ("\tchar cPrefixAndParamName" + i + "[" + stringLength + "];\n");
-                    writer.write ("\tsprintf( cPrefixAndParamName" + i +
+                    writer.write ("\t\tchar cPrefixAndParamName" + i + "[" + stringLength + "];\n");
+                    writer.write ("\t\tsprintf( cPrefixAndParamName" + i +
                               ", \"%s:" + parameterName +
                               "\", axiscCallGetNamespacePrefix(call,\"" +  namespace + "\"));\n");
                 }
@@ -454,18 +475,18 @@
                 {
                     // TODO
                     String attchType = param.getType().getName().getLocalPart();
-                    writer.write("\n\tconst AxiscChar *xmlSoapNsPfx" + i + 
+                    writer.write("\t\tconst AxiscChar *xmlSoapNsPfx" + i + 
                         " = axiscCallGetNamespacePrefix(call,\"" + 
                         WrapperConstants.APACHE_XMLSOAP_NAMESPACE + "\");\n");
-                    writer.write("\tchar attchType" + i + "[64];\n");
-                    writer.write("\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
-                    writer.write("\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
-                    writer.write("\tAXISCHANDLE attrs" + i + "[2];\n");
-                    writer.write("\tattrs" + i + "[0] = axiscCallCreateAttribute(call,\"type\", \"xsi\", attchType" + i + 
+                    writer.write("\t\tchar attchType" + i + "[64];\n");
+                    writer.write("\t\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
+                    writer.write("\t\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
+                    writer.write("\t\tAXISCHANDLE attrs" + i + "[2];\n");
+                    writer.write("\t\tattrs" + i + "[0] = axiscCallCreateAttribute(call,\"type\", \"xsi\", attchType" + i + 
                         ");\n");
-                    writer.write("\tattrs" + i + "[1] = axiscCallCreateAttribute(call,xmlSoapNsPfx" + i + 
+                    writer.write("\t\tattrs" + i + "[1] = axiscCallCreateAttribute(call,xmlSoapNsPfx" + i + 
                         ", \"xmlns\", \"http://xml.apache.org/xml-soap\");\n");
-                    writer.write("\taxiscCallAddAttachmentParameter(call, Value" + i + ", cPrefixAndParamName" + i + 
+                    writer.write("\t\taxiscCallAddAttachmentParameter(call, Value" + i + ", cPrefixAndParamName" + i + 
                         ", attrs" + i + ", 2");
                 }
                 else if (typeisarray)
@@ -482,14 +503,14 @@
                     {
                         // Array of simple type
                         String containedType = CUtils.getclass4qname (qname);
-                        writer.write ("\taxiscCallAddBasicArrayParameter(call,");
+                        writer.write ("\t\taxiscCallAddBasicArrayParameter(call,");
                         writer.write ("(Axisc_Array *)Value" + i + ", " +
                               CUtils.getXSDTypeForBasicType(containedType) + ", cPrefixAndParamName" + i);
                     }
                     else if (arrayType != null && arrayType.isSimpleType ())
                     {
                         String containedType = CUtils.getclass4qname (arrayType.getBaseType ());
-                        writer.write ("\taxiscCallAddBasicArrayParameter(call,");
+                        writer.write ("\t\taxiscCallAddBasicArrayParameter(call,");
                         writer.write ("(Axisc_Array *)Value" + i + ", " +
                                   CUtils.getXSDTypeForBasicType(containedType) +
                                   ", cPrefixAndParamName" + i);
@@ -498,7 +519,7 @@
                     {
                         // Array of complex type
                         String containedType = qname.getLocalPart ();
-                        writer.write ("\taxiscCallAddCmplxArrayParameter(call,");
+                        writer.write ("\t\taxiscCallAddCmplxArrayParameter(call,");
                         writer.write ("(Axisc_Array *)Value" + i +
                                   ", (void*)Axis_Serialize_" + containedType +
                                   ", (void*)Axis_Delete_" + containedType +
@@ -516,13 +537,13 @@
                             || param.isOptional()
                             || CUtils.isPointerType(paramTypeName))
                     {
-                        writer.write ("\taxiscCallAddParameter(call,");
+                        writer.write ("\t\taxiscCallAddParameter(call,");
                         writer.write ("(void*)Value" + i + ", cPrefixAndParamName" + i
                                   + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
                     else
                     {
-                        writer.write ("\taxiscCallAddParameter(call,");
+                        writer.write ("\t\taxiscCallAddParameter(call,");
                         writer.write ("(void*)&Value" + i + ", cPrefixAndParamName" + i
                                   + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
@@ -530,7 +551,7 @@
                 else
                 {
                     // Complex Type
-                    writer.write ("\taxiscCallAddCmplxParameter(call,");
+                    writer.write ("\t\taxiscCallAddCmplxParameter(call,");
                     writer.write ("Value" + i
                           + ", (void*)Axis_Serialize_" + paramTypeName
                           + ", (void*)Axis_Delete_" + paramTypeName
@@ -548,13 +569,17 @@
 
         if (minfo.getOutputMessage () != null)
         {
+            CUtils.printBlockComment(writer, "Invoke web service, send/receive operation. Handle output parameters, if any.");
             writer.write("\tif (AXISC_SUCCESS == axiscCallSendAndReceive(call))\n\t{\n");       
             writer.write("\t\tif(AXISC_SUCCESS == axiscCallCheckMessage(call, \""
                 + minfo.getOutputMessage().getLocalPart() + "\", \""
                 + minfo.getOutputMessage().getNamespaceURI() + "\"))\n\t\t{\n");
         }
         else
-            writer.write("\tif (AXISC_SUCCESS == axiscCallSend(call))\n\t{\n");       
+        {
+            CUtils.printBlockComment(writer, "Invoke web service, send-only operation.");
+            writer.write("\tif (AXISC_SUCCESS == axiscCallSend(call))\n\t{\n");      
+        }
         
         if (isAllTreatedAsOutParams)
         {

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java?view=diff&rev=510407&r1=510406&r2=510407
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Wed Feb 21 22:02:02 2007
@@ -289,6 +289,8 @@
         // TODO: xsd:extension not fully or correctly supported.
         if (extensionBaseAttrib != null)
         {
+            CUtils.printBlockComment(writer, "Serialize extension.");
+            
             String typeName = extensionBaseAttrib.getTypeName(); 
 
             if (extensionBaseAttrib.isSimpleType())
@@ -335,6 +337,8 @@
 
         if (attribs.length == 0) 
         {
+            CUtils.printBlockComment(writer, "No attributes or elements to serialize.");
+            
             writer.write("\tpSZ->serialize(\">\", NULL);\n");
 
             writeSerializeExtensionCode();
@@ -350,11 +354,13 @@
         // to put this, or we need to find a way to determine if nillable.
         //=============================================================================        
 
+        CUtils.printBlockComment(writer, "If null input, serialize as nil element.");
+        
         writer.write("\tif ( param == NULL )\n\t{\n");
         writer.write("\t\tpSZ->serializeAsAttribute( \"xsi:nil\", 0, (void*)&(xsd_boolean_true), XSD_BOOLEAN);\n");
         writer.write("\t\tpSZ->serialize( \">\", NULL);\n");
         writer.write("\t\treturn AXIS_SUCCESS;\n");
-        writer.write("\t}\n\n");
+        writer.write("\t}\n");
         
         //=============================================================================
         // Serialize 
@@ -371,7 +377,9 @@
         // Serialize attributes, if any
         //=============================================================================        
 
-        writer.write("\t/* If there are any attributes serialize them. If there aren't then close the tag */\n");
+        if (attributeParamCount > 0)
+            CUtils.printBlockComment(writer, "Serialize attributes.");
+        
         for (int i = 0; i < attributeParamCount; i++)
         {
             if (attribs[i].isArray() || !(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType()))
@@ -388,22 +396,20 @@
                 basicType = attribs[i].getTypeName();
 
             if (attribs[i].isOptional())
-                writer.write("\tif (0 != param->" + attribs[i].getParamNameAsMember() + ")\n");
+                writer.write("\tif (0 != param->" + attribs[i].getParamNameAsMember() + ")\n\t");
             
             if (CUtils.isPointerType(basicType) || attribs[i].isOptional())
             {
-                writer.write("\t\tpSZ->serializeAsAttribute(\""
+                writer.write("\tpSZ->serializeAsAttribute(\""
                         + soapTagName + "\", 0, (void*)(param->"
                         + attribs[i].getParamNameAsMember() + "), "
                         + CUtils.getXSDTypeForBasicType(basicType) + ");\n");
             }
             else
             {
-                writer.write("\t\tpSZ->serializeAsAttribute(\""
-                        + soapTagName
-                        + "\", 0, (void*)&(param->"
-                        + attribs[i].getParamNameAsMember()
-                        + "), "
+                writer.write("\tpSZ->serializeAsAttribute(\""
+                        + soapTagName + "\", 0, (void*)&(param->"
+                        + attribs[i].getParamNameAsMember() + "), "
                         + CUtils.getXSDTypeForBasicType(attribs[i].getTypeName()) + ");\n");
             }
         }
@@ -436,7 +442,8 @@
         // Serialize elements, if any
         //=============================================================================                
         
-        writer.write("\n\t/* then serialize elements if any*/\n");
+        if (attributeParamCount < attribs.length)
+            CUtils.printBlockComment(writer, "Serialize sub-elements.");
 
         boolean firstIfWritten = false;
         int anyCounter = 0; //counter for any types.
@@ -516,7 +523,7 @@
                     baseTypeName = typeName;
                 
                 if (attribs[i].isOptional())
-                    writer.write("\tif (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n\t{\n\t");
+                    writer.write("\tif (param->" + attribs[i].getParamNameAsMember() + " != NULL)\n\t");
                 
                 if (CUtils.isPointerType(baseTypeName))
                 {
@@ -558,9 +565,6 @@
                             + ", (void*)&(param->" + attribs[i].getParamNameAsMember()
                             + "), " + CUtils.getXSDTypeForBasicType(baseTypeName) + ");\n");
                 }
-                
-                if (attribs[i].isOptional())
-                    writer.write("\t}\n");
             }
             else
             {
@@ -615,7 +619,9 @@
                     + ", \">\", NULL);\n");
         }
 
-        writer.write("\n\tif (!bArray && blnIsNewPrefix)\n");
+        CUtils.printBlockComment(writer, "Remove namespace, if new.");        
+        
+        writer.write("\tif (!bArray && blnIsNewPrefix)\n");
         writer.write("\t\tpSZ->removeNamespacePrefix(Axis_URI_" + classname + ");\n");
         writer.write("\n");
         
@@ -628,6 +634,8 @@
      */
     private void writeDOCArrayPortionOfSerializeGlobalMethod() throws IOException
     {
+        CUtils.printBlockComment(writer, "Serialize top-most element, possibly defining new namespace.");        
+        
         // For doc/literal objects
         writer.write("\tbool blnIsNewPrefix = false;\n");
         writer.write("\tif (!bArray)\n\t{\n");
@@ -635,7 +643,7 @@
         writer.write("\t\tif (blnIsNewPrefix)\n");
         writer.write("\t\t\tpSZ->serialize(\" xmlns:\", sPrefix, \"=\\\"\", "
                         + "Axis_URI_" + classname + ", \"\\\"\", NULL);\n");
-        writer.write( "\t}\n\n");
+        writer.write( "\t}\n");
     }
 
     /**
@@ -662,7 +670,7 @@
                     + "\" xsi:type=\\\"\", sPrefix, \":\", " 
                     + "Axis_TypeName_" + classname + ", \"\\\" xmlns:\", " 
                     + "sPrefix, \"=\\\"\", Axis_URI_" + classname + ", \"\\\">\", NULL);\n");
-        writer.write( "\t}\n\n");
+        writer.write( "\t}\n");
     }
 
     private void writeDeSerializeExtensionCode() throws IOException, WrapperFault
@@ -670,6 +678,8 @@
         if (extensionBaseAttrib != null
                 && extensionBaseAttrib.getTypeName() != null)
         {
+            CUtils.printBlockComment(writer, "Deserialize extension.");
+            
             if (extensionBaseAttrib.isSimpleType())
             {
                 writer.write("\tvoid* pCharDataAs;\n");
@@ -729,11 +739,18 @@
             return;
         }
 
+        
+        // We always use this...
+        writer.write("\tconst char* peekedElementName;\n");
+
         //=============================================================================
         // Deserialize attributes.
         // Makes logic simpler to follow with slight duplication. TODO
         //=============================================================================        
         
+        if (attributeParamCount > 0)
+            CUtils.printBlockComment(writer, "Deserialize attributes.");
+        
         //=============================================================================
         // Deserialize attributes and elements.
         //=============================================================================        
@@ -745,8 +762,22 @@
         int anyCounter = 0; //counter for any types.
         int arrayCount = 0;
         
+        boolean handleAll = false;
+        boolean handleChoice = false;
+     
+        // Tabs to ensure code alignment
+        String tab1  = "\t";
+        String tab2Default = "";
+        String tab2;
+       
         for (int i = 0; i < attribs.length; i++)
         {
+            // Reset tabs
+            tab2  = tab2Default + "\t";
+            
+            if (i == attributeParamCount)
+                CUtils.printBlockComment(writer, "Deserialize elements.");
+            
             //if the attribute is a 'choice' construct we have to peek and make
             // the choice
 
@@ -794,7 +825,7 @@
             if (attribs[i].isAnyType())
             {
                 anyCounter +=1;
-                writer.write("\tparam->any" + Integer.toString(anyCounter)+ " = pIWSDZ->getAnyObject();\n");
+                writer.write(tab1 + "param->any" + Integer.toString(anyCounter)+ " = pIWSDZ->getAnyObject();\n");
             }
             else if (attribs[i].isArray())
             {
@@ -808,19 +839,19 @@
                     else
                         baseTypeName = attribs[i].getTypeName();
 
-                    writer.write("\tAxis_Array * array" + arrayCount + " = pIWSDZ->getBasicArray("
+                    writer.write(tab1 + "Axis_Array * array" + arrayCount + " = pIWSDZ->getBasicArray("
                             + CUtils.getXSDTypeForBasicType(baseTypeName) + ", \""
                             + attribs[i].getParamNameAsSOAPString()
                             + "\",0);\n");
-                    writer.write("\tif(param->" + attribs[i].getParamNameAsMember() + " == NULL)\n");
-                    writer.write("\t\tparam->" + attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() + "_Array();\n");
-                    writer.write("\tparam->" + attribs[i].getParamNameAsMember() + "->clone( *array" + arrayCount + ");\n");
-                    writer.write("\tAxis::AxisDelete((void*) array" + arrayCount + ", XSD_ARRAY);\n\n");
+                    writer.write(tab1 + "if(param->" + attribs[i].getParamNameAsMember() + " == NULL)\n");
+                    writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() + "_Array();\n");
+                    writer.write(tab1 + "param->" + attribs[i].getParamNameAsMember() + "->clone( *array" + arrayCount + ");\n");
+                    writer.write(tab1 + "Axis::AxisDelete((void*) array" + arrayCount + ", XSD_ARRAY);\n\n");
                 }
                 else
                 {
                     arrayType = attribs[i].getTypeName();
-                    writer.write("\tpIWSDZ->getCmplxArray(param->" + attribs[i].getParamNameAsMember() 
+                    writer.write(tab1 + "pIWSDZ->getCmplxArray(param->" + attribs[i].getParamNameAsMember() 
                             + ", (void*)Axis_DeSerialize_" + arrayType
                             + ", (void*)Axis_Create_" + arrayType 
                             + ", (void*)Axis_Delete_" + arrayType
@@ -834,9 +865,10 @@
                 // We only peek for elements, not element attributes!
                 if (attribs[i].isOptional() && !attribs[i].isAttribute())
                 {
-                    writer.write("\tconst char* elementName" + i + " = pIWSDZ->peekNextElementName();\n");
-                    writer.write("\t\tif(strcmp(elementName" + i + ", \"" + soapTagName + "\") == 0)\n");
-                    writer.write("\t\t{\n");
+                    writer.write(tab1 + "peekedElementName = pIWSDZ->peekNextElementName();\n");
+                    writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
+                    writer.write(tab1 + "{\n");
+                    tab2 += "\t";
                 }
                 
                 Type type = attribs[i].getType();
@@ -853,13 +885,13 @@
                 {
                     if (attribs[i].getChoiceElement() && isElementNillable(i) && !isPointerType)
                     {
-                        writer.write("\tparam->"
+                        writer.write(tab2 + "param->"
                                 + attribs[i].getParamNameAsMember()
                                 + " = (" + attribs[i].getTypeName()
                                 + "**)(" + attribs[i].getTypeName()
                                 +"*)new " +attribs[i].getTypeName() + ";\n");
                         
-                        writer.write("\t\t*(param->"
+                        writer.write(tab2 + "*(param->"
                                 + attribs[i].getParamNameAsMember() + ") = pIWSDZ->"
                                 + CUtils.getParameterGetValueMethodName(
                                         attribs[i].getTypeName(), attribs[i].isAttribute()) + "( \""
@@ -876,59 +908,60 @@
                         
                         if( isPointerType)
                         {
-                            writer.write("\t" + typeName + "    pValue" + i + " = pIWSDZ->" +
+                            writer.write(tab2 + typeName + " pValue" + i + " = pIWSDZ->" +
                                     CUtils.getParameterGetValueMethodName(baseTypeName, attribs[i].isAttribute()) +
                                     "( \"" + soapTagName + "\", 0);\n");
                         }
                         else
                         {
-                            writer.write("\t\t\t" + typeName + " *    pValue" + i + " = pIWSDZ->" +
+                            writer.write(tab2 + typeName + " *    pValue" + i + " = pIWSDZ->" +
                                     CUtils.getParameterGetValueMethodName(baseTypeName, attribs[i].isAttribute()) +
                                     "( \"" + soapTagName + "\", 0);\n");
                         }
                         
-                        writer.write( "\t\t\tif( pValue" + i + " == NULL)\n");
-                        writer.write("\t\t\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
-                        writer.write( "\t\t\telse\n");
-                        writer.write( "\t\t\t{\n");
+                        writer.write(tab2 + "if( pValue" + i + " == NULL)\n");
+                        writer.write(tab2 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
+                        writer.write(tab2 + "else\n");
+                        writer.write(tab2 + "{\n");
                         
-                        writer.write("\t\t\t\tparam->set" + attribs[i].getMethodName() + " (pValue" + i + ");\n");
-                        writer.write("\t\t\t\tAxis::AxisDelete( (void *) pValue" + i + ", " 
-                                + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n\n");
-                        writer.write( "\t\t\t}\n\n");
+                        writer.write(tab2 + "\tparam->set" + attribs[i].getMethodName() + " (pValue" + i + ");\n");
+                        writer.write(tab2 + "\tAxis::AxisDelete( (void *) pValue" + i + ", " 
+                                + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
+                        writer.write(tab2 + "}\n");
                     }
                 } 
                 else if (attribs[i].getChoiceElement() || attribs[i].getAllElement())
                 {
-                    writer.write("\tparam->"
+                    writer.write(tab2 + "param->"
                             + attribs[i].getParamNameAsMember() + " = pIWSDZ->"
                             + CUtils.getParameterGetValueMethodName(
                                     attribs[i].getTypeName(), attribs[i].isAttribute()) + "( \""
                             + soapTagName + "\",0);\n");
+//                    writer.write(tab2 + "param->__axis_deepcopy_"  + attribs[i].getParamNameAsMember()
+//                            + " = true;\n");
                 }
                 else
                 {
                     String elementNameToSearchFor = attribs[i].isAttribute()? attribs[i].getParamNameAsSOAPString():attribs[i].getElementNameAsSOAPString();
                     
-                    writer.write("\t" + attribs[i].getTypeName() + " * "
-                            + attribs[i].getParamNameAsMember() + " = NULL;\n\n");
-                    writer.write("\tif ((" + attribs[i].getParamNameAsMember() + " = pIWSDZ->"
+                    writer.write(tab2 + attribs[i].getTypeName() + " * "
+                            + attribs[i].getParamNameAsMember() + " = NULL;\n");
+                    writer.write(tab2 + "if ((" + attribs[i].getParamNameAsMember() + " = pIWSDZ->"
                             + CUtils.getParameterGetValueMethodName(
                                     attribs[i].getTypeName(), attribs[i].isAttribute()) + "( \""
-                            + elementNameToSearchFor + "\",0)) != NULL)\n\t{\n");
-
-                    writer.write("\t\tparam->set"
+                            + elementNameToSearchFor + "\",0)) != NULL)\n");
+                    writer.write(tab2 + "{\n");
+                    writer.write(tab2 + "\tparam->set"
                             + attribs[i].getMethodName() + "(* " + attribs[i].getParamNameAsMember() + " );\n");
-                    writer.write("\t\tAxis::AxisDelete( (void *) " + attribs[i].getParamNameAsMember() + ", " + CUtils.getXSDTypeForBasicType( attribs[i].getTypeName()) + ");\n");
-                    writer.write("\t}\n");                        
+                    writer.write(tab2 + "\tAxis::AxisDelete( (void *) " + attribs[i].getParamNameAsMember() + ", " + CUtils.getXSDTypeForBasicType( attribs[i].getTypeName()) + ");\n");
+                    writer.write(tab2 + "}\n");                        
                 }
                 
                 if (attribs[i].isOptional() && !attribs[i].isAttribute())
                 {
-                    writer.write("\t\t\t}\n");
-                    writer.write("\t\telse\n");
-                    writer.write("\t\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
-                    writer.write("\n");
+                    writer.write(tab1 + "}\n");
+                    writer.write(tab1 + "else\n");
+                    writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
                 }
             }
             else
@@ -938,12 +971,12 @@
                 
                 if (attribs[i].isOptional())
                 {
-                    writer.write("\tconst char* elementName" + i + " = pIWSDZ->peekNextElementName();\n");
-                    writer.write("\tif(strcmp(elementName" + i + ", \"" + soapTagName + "\") == 0)\n");
-                    writer.write("\t{\n");
+                    writer.write(tab1 + "peekedElementName = pIWSDZ->peekNextElementName();\n");
+                    writer.write(tab1 + "if (strcmp(peekedElementName, \"" + soapTagName + "\") == 0)\n");
+                    tab2 += "\t";
                 }
 
-                writer.write("\tparam->" + attribs[i].getParamNameAsMember()
+                writer.write(tab2 + "param->" + attribs[i].getParamNameAsMember()
                         + " = (" + attribs[i].getTypeName()
                         + "*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_" + attribs[i].getTypeName()
                         + ", (void*)Axis_Create_" + attribs[i].getTypeName() 
@@ -952,19 +985,19 @@
                 
                 if (attribs[i].isOptional())
                 {
-                    writer.write("\t}\n");
-                    writer.write("\telse\n");
-                    writer.write("\t\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
-                    writer.write("\n");
+                    writer.write(tab1 + "else\n");
+                    writer.write(tab1 + "\tparam->" + attribs[i].getParamNameAsMember() + " = NULL;\n");
                 }
             }
 
             if (attribs[i].getChoiceElement())
-                writer.write("\t}\n");
+                writer.write(tab1 + "}\n");
             
             if (attribs[i].getAllElement())
                 if (attribs[i].getMinOccurs() == 0)
                     writer.write("\t}\n");
+            
+            writer.write("\n");                        
         }
         
         //=============================================================================

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java?view=diff&rev=510407&r1=510406&r2=510407
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Wed Feb 21 22:02:02 2007
@@ -334,30 +334,33 @@
                 
         writer.write ("\ttry\n\t{\n");
     
-        writer.write("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER" + "))\n");
-        writer.write("\t\treturn ");
+        CUtils.printBlockComment(writer, "Initialize client engine, set SOAP version, SOAPAction, operation, etc.");
+        
+        writer.write("\t\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER" + "))\n");
+        writer.write("\t\t\treturn ");
         if (returntype != null)
             writer.write ((returntypeisarray ? "RetArray" : returntypeissimple ? "Ret" : "pReturn") + ";\n");
         else
             writer.write (";\n");
         writer.write ("\n");
         
-        writer.write ("\tif (NULL==m_pCall->getTransportProperty(\"SOAPAction\",false))\n");
-        writer.write ("\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
+        writer.write ("\t\tif (NULL==m_pCall->getTransportProperty(\"SOAPAction\",false))\n");
+        writer.write ("\t\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
                + minfo.getSoapAction () + "\");\n");
         writer.write("\n");
         
-        writer.write ("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
+        writer.write ("\t\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
         //TODO check which version is it really.
         
         if( minfo.getInputMessage() != null)
         {
-            writer.write( "\tm_pCall->setOperation(\"" 
+            writer.write( "\t\tm_pCall->setOperation(\"" 
                     + minfo.getInputMessage().getLocalPart() + "\", \"" 
                     + minfo.getInputMessage().getNamespaceURI() + "\");\n");
         }
         
         // Add attributes to soap method
+        boolean commentIssued=false;
         for (int i = 0; i < paramsB.size (); i++)
         {
             ParameterInfo param = (ParameterInfo) paramsB.get (i);
@@ -366,40 +369,58 @@
             if (!param.isAttribute ())
                 continue;
             
+            if (!commentIssued)
+            {
+                commentIssued = true;
+                CUtils.printBlockComment(writer, "Add attributes to soap method.");
+            }
+            else
+                writer.write ("\n");
+            
             // Process attributes
             String elementType = param.getElementName ().getLocalPart ();
     
             if ("string".equals (elementType))
             {
-                writer.write ("\tm_pCall->setSOAPMethodAttribute(\""
+                writer.write ("\t\tm_pCall->setSOAPMethodAttribute(\""
                       + param.getParamNameAsSOAPString () + "\", \"\", Value" + i + ");\n");
             }
             else if ("int".equals (elementType))
             {
-                writer.write ("\t{\n");
-                writer.write ("\t\tchar buffer[20];\n");
-                writer.write ("\t\tsprintf(buffer,\"%d\", Value" + i + ");\n");
-                writer.write ("\t\tm_pCall->setSOAPMethodAttribute(\"" +
+                writer.write ("\t\t{\n");
+                writer.write ("\t\t\tchar buffer[20];\n");
+                writer.write ("\t\t\tsprintf(buffer,\"%d\", Value" + i + ");\n");
+                writer.write ("\t\t\tm_pCall->setSOAPMethodAttribute(\"" +
                        param.getParamNameAsSOAPString () + "\", \"\", buffer);\n");
-                writer.write ("\t}\n");
+                writer.write ("\t\t}\n");
             }
         } // end for-loop
     
         //new calls from stub base
-        writer.write("\n");
-        writer.write ("\tincludeSecure();\n");
-        writer.write ("\tapplyUserPreferences();\n");
-        writer.write("\n");
-    
+        CUtils.printBlockComment(writer, "Apply SSL configuration properties and user-set SOAP headers.");
+        writer.write ("\t\tincludeSecure();\n");
+        writer.write ("\t\tapplyUserPreferences();\n");
+
         // Process elements
+        commentIssued=false;
+        String tab2;
         for (int i = 0; i < paramsB.size (); i++)
         {
+            tab2 = "";
             ParameterInfo param = (ParameterInfo) paramsB.get (i);
     
             // Ignore attributes
             if (param.isAttribute ())
                 continue;
-                
+
+            if (!commentIssued)
+            {
+                commentIssued = true;
+                CUtils.printBlockComment(writer, "Process parameters.");
+            }
+            else
+                writer.write ("\n");
+            
             // add elements
             type = wscontext.getTypemap ().getType (param.getSchemaName ());
             if (type != null)
@@ -426,25 +447,28 @@
             }
     
             if (param.isAnyType ())
-                writer.write ("\tm_pCall->addAnyObject(Value" + i);
+                writer.write ("\t\tm_pCall->addAnyObject(Value" + i);
             else
             {
                 String parameterName = ((ParameterInfo) paramsB.get (i)).getElementNameAsSOAPString ();
                 String namespace = ((ParameterInfo) paramsB.get (i)).getElementName ().getNamespaceURI ();
     
                 if (((ParameterInfo)paramsB.get(i)).isOptional())
-                    writer.write("\tif (Value" + i + " != NULL)\n\t{\n");
+                {
+                    writer.write("\t\tif (Value" + i + " != NULL)\n\t\t{\n");
+                    tab2 = "\t";
+                }
                 
                 if (namespace.length () == 0)
                 {
-                    writer.write ("\tchar cPrefixAndParamName"
+                    writer.write (tab2 + "\t\tchar cPrefixAndParamName"
                               + i + "[" + "] = \"" + parameterName + "\";\n");
                 }
                 else
                 {
                     int stringLength = 8 + 1 + parameterName.length () + 1;
-                    writer.write ("\tchar cPrefixAndParamName" + i + "[" + stringLength + "];\n");
-                    writer.write ("\tsprintf( cPrefixAndParamName" + i +
+                    writer.write (tab2 + "\t\tchar cPrefixAndParamName" + i + "[" + stringLength + "];\n");
+                    writer.write (tab2 + "\t\tsprintf( cPrefixAndParamName" + i +
                               ", \"%s:" + parameterName +
                               "\", m_pCall->getNamespacePrefix(\"" +  namespace + "\"));\n");
                 }
@@ -452,18 +476,18 @@
                 if (param.getType().isAttachment())
                 {
                     String attchType = param.getType().getName().getLocalPart();
-                          writer.write("\n\tconst AxisChar *xmlSoapNsPfx" + i + 
+                          writer.write(tab2 + "\t\tconst AxisChar *xmlSoapNsPfx" + i + 
                         " = m_pCall->getNamespacePrefix(\"" + 
                         WrapperConstants.APACHE_XMLSOAP_NAMESPACE + "\");\n");
-                    writer.write("\tchar attchType" + i + "[64];\n");
-                    writer.write("\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
-                    writer.write("\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
-                    writer.write("\tIAttribute *attrs" + i + "[2];\n");
-                    writer.write("\tattrs" + i + "[0] = m_pCall->createAttribute(\"type\", \"xsi\", attchType" + i + 
+                    writer.write(tab2 + "\t\tchar attchType" + i + "[64];\n");
+                    writer.write(tab2 + "\t\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
+                    writer.write(tab2 + "\t\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
+                    writer.write(tab2 + "\t\tIAttribute *attrs" + i + "[2];\n");
+                    writer.write(tab2 + "\t\tattrs" + i + "[0] = m_pCall->createAttribute(\"type\", \"xsi\", attchType" + i + 
                         ");\n");
-                    writer.write("\tattrs" + i + "[1] = m_pCall->createAttribute(xmlSoapNsPfx" + i + 
+                    writer.write(tab2 + "\t\tattrs" + i + "[1] = m_pCall->createAttribute(xmlSoapNsPfx" + i + 
                         ", \"xmlns\", \"http://xml.apache.org/xml-soap\");\n");
-                    writer.write("\tm_pCall->addAttachmentParameter(Value" + i + ", cPrefixAndParamName" + i + 
+                    writer.write(tab2 + "\t\tm_pCall->addAttachmentParameter(Value" + i + ", cPrefixAndParamName" + i + 
                         ", attrs" + i + ", 2");
                 }
                 else if (typeisarray)
@@ -480,14 +504,14 @@
                     {
                         // Array of simple type
                         String containedType = CUtils.getclass4qname (qname);
-                        writer.write ("\tm_pCall->addBasicArrayParameter(");
+                        writer.write (tab2 + "\t\tm_pCall->addBasicArrayParameter(");
                         writer.write ("Value" + i + ", " +
                               CUtils.getXSDTypeForBasicType(containedType) + ", cPrefixAndParamName" + i);
                     }
                     else if (arrayType != null && arrayType.isSimpleType ())
                     {
                         String containedType = CUtils.getclass4qname (arrayType.getBaseType ());
-                        writer.write ("\tm_pCall->addBasicArrayParameter(");
+                        writer.write (tab2 + "\t\tm_pCall->addBasicArrayParameter(");
                         writer.write ("Value" + i + ", " +
                                   CUtils.getXSDTypeForBasicType(containedType) +
                                   ", cPrefixAndParamName" + i);
@@ -496,7 +520,7 @@
                     {
                         // Array of complex type
                         String containedType = qname.getLocalPart ();
-                        writer.write ("\tm_pCall->addCmplxArrayParameter(");
+                        writer.write (tab2 + "\t\tm_pCall->addCmplxArrayParameter(");
                         writer.write ("Value" + i +
                                   ", (void*)Axis_Serialize_" + containedType +
                                   ", (void*)Axis_Delete_" + containedType +
@@ -514,13 +538,13 @@
                             || param.isOptional()
                             || CUtils.isPointerType(paramTypeName))
                     {
-                        writer.write ("\tm_pCall->addParameter(");
+                        writer.write (tab2 + "\t\tm_pCall->addParameter(");
                         writer.write ("(void*)Value" + i + ", cPrefixAndParamName" + i
                                   + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
                     else
                     {
-                        writer.write ("\tm_pCall->addParameter(");
+                        writer.write (tab2 + "\t\tm_pCall->addParameter(");
                         writer.write ("(void*)&Value" + i + ", cPrefixAndParamName" + i
                                   + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
                     }
@@ -528,7 +552,7 @@
                 else
                 {
                     // Complex Type
-                    writer.write ("\tm_pCall->addCmplxParameter(");
+                    writer.write (tab2 + "\t\tm_pCall->addCmplxParameter(");
                     writer.write ("Value" + i
                           + ", (void*)Axis_Serialize_" + paramTypeName
                           + ", (void*)Axis_Delete_" + paramTypeName
@@ -538,21 +562,23 @@
 
             writer.write (");\n");
             if (((ParameterInfo)paramsB.get(i)).isOptional())
-                writer.write("\t}\n");
+                writer.write("\t\t}\n");
         } // end for-loop
         
-        writer.write("\n");
-        
 
         if (minfo.getOutputMessage () != null)
         {
-            writer.write ("\tif (AXIS_SUCCESS == m_pCall->sendAndReceive())\n\t{\n");
-            writer.write ("\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
+            CUtils.printBlockComment(writer, "Invoke web service, send/receive operation. Handle output parameters, if any.");
+            writer.write ("\t\tif (AXIS_SUCCESS == m_pCall->sendAndReceive())\n\t\t{\n");
+            writer.write ("\t\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
                   + minfo.getOutputMessage ().getLocalPart () + "\", \""
-                  + minfo.getOutputMessage ().getNamespaceURI () + "\"))\n\t\t{\n");
+                  + minfo.getOutputMessage ().getNamespaceURI () + "\"))\n\t\t\t{\n");
         }
         else
-            writer.write ("\tif (AXIS_SUCCESS == m_pCall->send())\n\t{\n");
+        {
+            CUtils.printBlockComment(writer, "Invoke web service, send-only operation.");
+            writer.write ("\t\tif (AXIS_SUCCESS == m_pCall->send())\n\t\t{\n");
+        }
         
         if (isAllTreatedAsOutParams)
         {
@@ -607,48 +633,48 @@
                     {
                         containedType = CUtils.getclass4qname (qname);
         
-                        writer.write("\n\t\t\tAxis_Array * pReturn" + i + " = m_pCall->getBasicArray(" + CUtils.getXSDTypeForBasicType (containedType) 
+                        writer.write("\n\t\t\t\tAxis_Array * pReturn" + i + " = m_pCall->getBasicArray(" + CUtils.getXSDTypeForBasicType (containedType) 
                             + ", \"" + currentType.getParamNameAsSOAPString ()
                             + "\", 0);\n\n");
-                        writer.write("\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
-                        writer.write("\t\t\t{\n");
-                        writer.write("\t\t\t\tif( *OutValue" + i + " == NULL)\n");
-                        writer.write("\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
-                        writer.write("\t\t\t\telse\n");
-                        writer.write("\t\t\t\t\t(*OutValue" + i + ")->clear();\n");
-                        writer.write("\t\t\t\t(*OutValue" + i + ")->clone(*pReturn" + i + ");\n");
-                        writer.write("\t\t\t}\n\n");
-                        writer.write("\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", XSD_ARRAY);\n");
+                        writer.write("\t\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
+                        writer.write("\t\t\t\t{\n");
+                        writer.write("\t\t\t\t\tif( *OutValue" + i + " == NULL)\n");
+                        writer.write("\t\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
+                        writer.write("\t\t\t\t\telse\n");
+                        writer.write("\t\t\t\t\t\t(*OutValue" + i + ")->clear();\n");
+                        writer.write("\t\t\t\t\t(*OutValue" + i + ")->clone(*pReturn" + i + ");\n");
+                        writer.write("\t\t\t\t}\n\n");
+                        writer.write("\t\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", XSD_ARRAY);\n");
                     }
                     else
                     {
                         containedType = qname.getLocalPart ();
-                        writer.write("\n\t\t\tif (OutValue" + i + " != NULL)\n" );
-                        writer.write("\t\t\t{\n");
-                        writer.write("\t\t\t\tif (" + currentParamName + " == NULL)\n");
-                        writer.write("\t\t\t\t\t" + currentParamName + " = new " + containedType + "_Array();\n");
-                        writer.write("\t\t\t\telse\n");
-                        writer.write("\t\t\t\t\t(" + currentParamName + ")->clear();\n");
-                        writer.write("\t\t\t\tm_pCall->getCmplxArray(" + currentParamName 
+                        writer.write("\n\t\t\t\tif (OutValue" + i + " != NULL)\n" );
+                        writer.write("\t\t\t\t{\n");
+                        writer.write("\t\t\t\t\tif (" + currentParamName + " == NULL)\n");
+                        writer.write("\t\t\t\t\t\t" + currentParamName + " = new " + containedType + "_Array();\n");
+                        writer.write("\t\t\t\t\telse\n");
+                        writer.write("\t\t\t\t\t\t(" + currentParamName + ")->clear();\n");
+                        writer.write("\t\t\t\t\tm_pCall->getCmplxArray(" + currentParamName 
                               + ", (void*) Axis_DeSerialize_" + containedType
                               + ", (void*) Axis_Create_" + containedType
                               + ", (void*) Axis_Delete_" + containedType
                               + ", \"" + currentType.getElementNameAsSOAPString () 
                               + "\", Axis_URI_" + containedType + ");\n");
-                        writer.write("\t\t\t}\n");
-                        writer.write("\t\t\telse\n");
-                        writer.write("\t\t\t{\n");
-                        writer.write("\t\t\t\t// Unable to return value, but will deserialize to ensure subsequent elements can be correctly processed.\n");
-                        writer.write("\t\t\t\t" + containedType + "_Array * pTemp" + i 
+                        writer.write("\t\t\t\t}\n");
+                        writer.write("\t\t\t\telse\n");
+                        writer.write("\t\t\t\t{\n");
+                        writer.write("\t\t\t\t\t// Unable to return value, but will deserialize to ensure subsequent elements can be correctly processed.\n");
+                        writer.write("\t\t\t\t\t" + containedType + "_Array * pTemp" + i 
                                 + " = new " + containedType + "_Array();\n");
-                        writer.write("\t\t\t\tm_pCall->getCmplxArray(pTemp" + i 
+                        writer.write("\t\t\t\t\tm_pCall->getCmplxArray(pTemp" + i 
                               + ", (void*) Axis_DeSerialize_" + containedType
                               + ", (void*) Axis_Create_" + containedType
                               + ", (void*) Axis_Delete_" + containedType
                               + ", \"" + currentType.getElementNameAsSOAPString () 
                               + "\", Axis_URI_" + containedType + ");\n");
-                        writer.write("\t\t\t\tdelete pTemp" + i + ";\n");
-                        writer.write("\t\t\t}\n");
+                        writer.write("\t\t\t\t\tdelete pTemp" + i + ";\n");
+                        writer.write("\t\t\t\t}\n");
                     }
                 }
                 else if (typeissimple)
@@ -668,58 +694,58 @@
                             xsdType += " *";
                         }
                         
-                        writer.write( "\t\t\t" + currentParaType + " pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamNameAsSOAPString() + "\", 0);\n");
+                        writer.write( "\t\t\t\t" + currentParaType + " pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamNameAsSOAPString() + "\", 0);\n");
                         writer.write( "\n");
-                        writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
-                        writer.write( "\t\t\t\t{\n");
-                        writer.write( "\t\t\t\tif( *OutValue" + i + " != NULL)\n");
-                        writer.write( "\t\t\t\t{\n");
-                        writer.write( "\t\t\t\t\tint\tiStringSize" + i + " = strlen( (char *) *OutValue" + i + ");\n");
-                        writer.write( "\t\t\t\t\tint\tiStrLenValue" + i + " = strlen( pReturn" + i + ");\n");
-                        writer.write( "\n");
-                        writer.write( "\t\t\t\t\tif( iStrLenValue" + i + " > iStringSize" + i + ")\n");
+                        writer.write( "\t\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
                         writer.write( "\t\t\t\t\t{\n");
-                        writer.write( "\t\t\t\t\t\t*OutValue" + i + " =(" + xsdType + ") new char[iStrLenValue" + i + " + 1];\n");
-                        writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+                        writer.write( "\t\t\t\t\tif( *OutValue" + i + " != NULL)\n");
+                        writer.write( "\t\t\t\t\t{\n");
+                        writer.write( "\t\t\t\t\t\tint\tiStringSize" + i + " = strlen( (char *) *OutValue" + i + ");\n");
+                        writer.write( "\t\t\t\t\t\tint\tiStrLenValue" + i + " = strlen( pReturn" + i + ");\n");
+                        writer.write( "\n");
+                        writer.write( "\t\t\t\t\t\tif( iStrLenValue" + i + " > iStringSize" + i + ")\n");
+                        writer.write( "\t\t\t\t\t\t{\n");
+                        writer.write( "\t\t\t\t\t\t\t*OutValue" + i + " =(" + xsdType + ") new char[iStrLenValue" + i + " + 1];\n");
+                        writer.write( "\t\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+                        writer.write( "\t\t\t\t\t\t}\n");
+                        writer.write( "\t\t\t\t\t\telse\n");
+                        writer.write( "\t\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
                         writer.write( "\t\t\t\t\t}\n");
                         writer.write( "\t\t\t\t\telse\n");
+                        writer.write( "\t\t\t\t\t{\n");
+                        writer.write( "\t\t\t\t\t\t*OutValue" + i + " = (" + xsdType + ") new char[strlen( pReturn" + i + ") + 1];\n");
                         writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+                        writer.write( "\t\t\t\t\t}\n");
                         writer.write( "\t\t\t\t}\n");
-                        writer.write( "\t\t\t\telse\n");
-                        writer.write( "\t\t\t\t{\n");
-                        writer.write( "\t\t\t\t\t*OutValue" + i + " = (" + xsdType + ") new char[strlen( pReturn" + i + ") + 1];\n");
-                        writer.write( "\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
-                        writer.write( "\t\t\t\t}\n");
-                        writer.write( "\t\t\t}\n");
                         writer.write( "\n");
-                        writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
+                        writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
                     }
                     else 
                     {
-                        writer.write( "\t\t\t" + currentParaType + " * pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamNameAsSOAPString() + "\", 0);\n");
+                        writer.write( "\t\t\t\t" + currentParaType + " * pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamNameAsSOAPString() + "\", 0);\n");
                         writer.write( "\n");
-                        writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
-                        writer.write( "\t\t\t{\n");
+                        writer.write( "\t\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
+                        writer.write( "\t\t\t\t{\n");
                         
                         if (currentType.isNillable() || currentType.isOptional())
                         {
-                            writer.write( "\t\t\t\tif( *OutValue" + i + " == NULL)\n");
-                            writer.write( "\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
+                            writer.write( "\t\t\t\t\tif( *OutValue" + i + " == NULL)\n");
+                            writer.write( "\t\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
                             writer.write( "\n");
-                            writer.write( "\t\t\t\t*");
+                            writer.write( "\t\t\t\t\t*");
                         }
                         else
-                            writer.write( "\t\t\t\t");
+                            writer.write( "\t\t\t\t\t");
 
                         writer.write( "*OutValue" + i + " = *pReturn" + i + ";\n");
-                        writer.write( "\t\t\t}\n");
+                        writer.write( "\t\t\t\t}\n");
                         writer.write( "\n");
-                        writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
+                        writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
                     }
                 }
                 else if (currentType.isAnyType ())
                 {
-                    writer.write ("\t\t\t"
+                    writer.write ("\t\t\t\t"
                           + currentParamName + " = *(" + currentParaType 
                           + "*)m_pCall->getAnyObject();\n");
                 }
@@ -729,7 +755,7 @@
                     if (lastIndexOfStar > 0)
                         currentParaType = currentParaType.substring(0, lastIndexOfStar);
 
-                    writer.write ("\n\t\t\t"
+                    writer.write ("\n\t\t\t\t"
                               + currentParamName + " = (" + currentParaType
                               + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_" + currentParaType 
                               + ", (void*) Axis_Create_" + currentParaType 
@@ -738,17 +764,17 @@
                 }
             } // end for-loop for paramsC
             
+            writer.write ("\t\t\t}\n");
             writer.write ("\t\t}\n");
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
         }
         else if (returntype == null)
         {
             if (minfo.getOutputMessage () != null)
-                writer.write ("\t\t\t/*not successful*/\n\t\t}\n");
+                writer.write ("\t\t\t\t/*not successful*/\n\t\t\t}\n");
 
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
+            writer.write ("\t\t}\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
         }
         else if (returntypeisarray)
         {
@@ -761,16 +787,16 @@
             if (CUtils.isSimpleType (qname))
             {
                 containedType = CUtils.getclass4qname (qname);
-                writer.write ("\t\t\tAxis_Array * RetAxisArray = m_pCall->getBasicArray(" 
+                writer.write ("\t\t\t\tAxis_Array * RetAxisArray = m_pCall->getBasicArray(" 
                         + CUtils.getXSDTypeForBasicType (containedType) 
                         + ", \"" + returntype.getParamNameAsSOAPString () + "\", 0);\n");
-                writer.write ("\t\t\tRetArray->clone(*RetAxisArray);\n");
-                writer.write ("\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n");
+                writer.write ("\t\t\t\tRetArray->clone(*RetAxisArray);\n");
+                writer.write ("\t\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n");
             }
             else
             {
                 containedType = qname.getLocalPart ();
-                writer.write("\t\t\tRetArray = (" + containedType + "_Array *) m_pCall->getCmplxArray(RetArray, (void*) Axis_DeSerialize_"
+                writer.write("\t\t\t\tRetArray = (" + containedType + "_Array *) m_pCall->getCmplxArray(RetArray, (void*) Axis_DeSerialize_"
                         + containedType 
                         + ", (void*) Axis_Create_" + containedType
                           + ", (void*) Axis_Delete_" + containedType
@@ -778,10 +804,10 @@
                           + "\", Axis_URI_" + containedType + ");\n");
             }
             
+            writer.write ("\t\t\t}\n");
             writer.write ("\t\t}\n");
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
-            writer.write ("\treturn RetArray;\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
+            writer.write ("\t\treturn RetArray;\n");
         }
         else if (returntypeissimple)
         {
@@ -789,107 +815,107 @@
             {
                 if( CUtils.isPointerType( outparamType))
                 {
-                    writer.write( "\t\t\t" + outparamType + " pReturn = m_pCall->" 
+                    writer.write( "\t\t\t\t" + outparamType + " pReturn = m_pCall->" 
                             + CUtils.getParameterGetValueMethodName( outparamType, false) 
                             + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
                 }
                 else
                 {
-                    writer.write( "\t\t\t" + outparamType + " * pReturn = m_pCall->" 
+                    writer.write( "\t\t\t\t" + outparamType + " * pReturn = m_pCall->" 
                             + CUtils.getParameterGetValueMethodName( outparamType, false) 
                             + "(\"" + returntype.getParamNameAsSOAPString() + "\", 0);\n");
                 }
                 
                 writer.write( "\n");
-                writer.write( "\t\t\tif( pReturn != NULL)\n");
-                writer.write( "\t\t\t{\n");
+                writer.write( "\t\t\t\tif( pReturn != NULL)\n");
+                writer.write( "\t\t\t\t{\n");
                 if( CUtils.isPointerType(outparamType))
                 {
-                    writer.write( "\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
-                    writer.write( "\t\t\t\tstrcpy( Ret, pReturn);\n");
+                    writer.write( "\t\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
+                    writer.write( "\t\t\t\t\tstrcpy( Ret, pReturn);\n");
                 }
                 else
                 {
-                    writer.write( "\t\t\t\tRet = new " + outparamType + "();\n");
-                    writer.write( "\t\t\t\t*Ret = *pReturn;\n");
+                    writer.write( "\t\t\t\t\tRet = new " + outparamType + "();\n");
+                    writer.write( "\t\t\t\t\t*Ret = *pReturn;\n");
                 }
                 
-                writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+                writer.write( "\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+                writer.write( "\t\t\t\t}\n");
                 writer.write( "\t\t\t}\n");
-                writer.write( "\t\t}\n");
             }
             else
             {
                 if (CUtils.isPointerType(outparamType))
                 {
-                    writer.write ("\t\t\t" + outparamType +
+                    writer.write ("\t\t\t\t" + outparamType +
                               " pReturn = m_pCall->" +
                               CUtils.getParameterGetValueMethodName(outparamType,false) + "(\"" +
                               returntype.getParamNameAsSOAPString () + "\", 0);\n");
-                    writer.write ("\t\t\tif(pReturn)\n");
-                    writer.write ("\t\t\t{\n");
-                    writer.write ("\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
-                    writer.write ("\t\t\t\tstrcpy( Ret, pReturn);\n");
-                    writer.write ("\t\t\t\tAxis::AxisDelete( pReturn, XSD_STRING);\n");
-                    writer.write ("\t\t\t}\n");
+                    writer.write ("\t\t\t\tif(pReturn)\n");
+                    writer.write ("\t\t\t\t{\n");
+                    writer.write ("\t\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
+                    writer.write ("\t\t\t\t\tstrcpy( Ret, pReturn);\n");
+                    writer.write ("\t\t\t\t\tAxis::AxisDelete( pReturn, XSD_STRING);\n");
+                    writer.write ("\t\t\t\t}\n");
                 }
                 else
                 {
-                    writer.write ("\t\t\t" + outparamType + " * pReturn = m_pCall->" +
+                    writer.write ("\t\t\t\t" + outparamType + " * pReturn = m_pCall->" +
                               CUtils.getParameterGetValueMethodName(outparamType, false) + "(\"" +
                               returntype.getElementNameAsSOAPString() + "\", 0);\n");
-                    writer.write ("\t\t\tif(pReturn)\n");
-                    writer.write ("\t\t\t{\n");
+                    writer.write ("\t\t\t\tif(pReturn)\n");
+                    writer.write ("\t\t\t\t{\n");
                     
                     if( CUtils.isPointerType( outparamType))
-                        writer.write ("\t\t\t\tRet = *pReturn;\n");
+                        writer.write ("\t\t\t\t\tRet = *pReturn;\n");
                     else
-                        writer.write ("\t\t\t\tRet = *pReturn;\n");
+                        writer.write ("\t\t\t\t\tRet = *pReturn;\n");
     
-                    writer.write ("\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
-                    writer.write ("\t\t\t}\n");
+                    writer.write ("\t\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+                    writer.write ("\t\t\t\t}\n");
                 }
                 
                 // TODO If we unexpectedly receive a nill value, when nillable="false" we should do something appropriate, perhaps as below:
 //                              writer.write("\t\t\telse");
 //                              writer.write("\t\t\t\tthrow new Exception(\"Unexpected use of nill\");");
-                writer.write ("\t\t}\n");
+                writer.write ("\t\t\t}\n");
 
             }
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
-            writer.write ("\treturn Ret;\n");
+            writer.write ("\t\t}\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
+            writer.write ("\t\treturn Ret;\n");
         }
         else if (returntype.isAnyType ())
         {
-            writer.write ("\t\t\tpReturn = (" + outparamType + "*)m_pCall->getAnyObject();\n\t\t}\n");
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
-            writer.write ("\treturn pReturn;\n");
+            writer.write ("\t\t\t\tpReturn = (" + outparamType + "*)m_pCall->getAnyObject();\n\t\t}\n");
+            writer.write ("\t\t}\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
+            writer.write ("\t\treturn pReturn;\n");
         }
         else
         {
             if (outparamType.lastIndexOf ("*") > 0)
             {
                 String outparamTypeBase = outparamType.substring (0,outparamType.lastIndexOf("*"));
-                writer.write ("\t\t\tpReturn = (" + outparamType +
+                writer.write ("\t\t\t\tpReturn = (" + outparamType +
                           ")m_pCall->getCmplxObject((void*) Axis_DeSerialize_" + outparamTypeBase +
                           ", (void*) Axis_Create_" + outparamTypeBase +
                           ", (void*) Axis_Delete_" + outparamTypeBase + ",\"" +
-                          returntype.getElementNameAsSOAPString () + "\", 0);\n\t\t}\n");
+                          returntype.getElementNameAsSOAPString () + "\", 0);\n\t\t\t}\n");
             }
             else
             {
-                writer.write ("\t\t\tpReturn = (" + outparamType
+                writer.write ("\t\t\t\tpReturn = (" + outparamType
                           + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_" + outparamType +
                           ", (void*) Axis_Create_" + outparamType +
                           ", (void*) Axis_Delete_" + outparamType + ",\"" +
-                          returntype.getElementNameAsSOAPString () + "\", 0);\n\t\t}\n");
+                          returntype.getElementNameAsSOAPString () + "\", 0);\n\t\t\t}\n");
             }
 
-            writer.write ("\t}\n");
-            writer.write ("\tm_pCall->unInitialize();\n");
-            writer.write ("\treturn pReturn;\n");
+            writer.write ("\t\t}\n");
+            writer.write ("\t\tm_pCall->unInitialize();\n");
+            writer.write ("\t\treturn pReturn;\n");
         }
     
         writer.write ("\t}\n");



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