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 2006/03/23 00:28:14 UTC

svn commit: r387970 [2/2] - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal: BeanParamWriter.java WrapWriter.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java?rev=387970&r1=387969&r2=387970&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java Wed Mar 22 15:28:11 2006
@@ -60,64 +60,45 @@
         Type type;
         boolean isAllTreatedAsOutParams = false;
         ParameterInfo returntype = null;
+        
         int noOfOutParams = minfo.getOutputParameterTypes().size();
         if (0 == noOfOutParams)
-        {
             returntype = null;
-        }
+        else if (1 == noOfOutParams)
+            returntype = (ParameterInfo) minfo.getOutputParameterTypes().iterator().next();
         else
-        {
-            if (1 == noOfOutParams)
-            {
-                returntype =
-                    (ParameterInfo) minfo
-                        .getOutputParameterTypes()
-                        .iterator()
-                        .next();
-            }
-            else
-            {
-                isAllTreatedAsOutParams = true;
-            }
-        }
+            isAllTreatedAsOutParams = true;
+
         Collection params = minfo.getInputParameterTypes();
         String methodName = minfo.getMethodname();
         Type retType = null;
         String outparamType = null;
         boolean returntypeissimple = false;
         boolean returntypeisarray = false;
+        
         if (returntype != null)
         {
-            retType =
-                wscontext.getTypemap().getType(returntype.getSchemaName());
+            retType = wscontext.getTypemap().getType(returntype.getSchemaName());
             if (retType != null)
             {
                 if (retType.isSimpleType())
-                { //schema defined simpleType possibly with restrictions
+                { 
                     returntypeissimple = true;
                     outparamType = CUtils.getclass4qname(retType.getBaseType());
                 }
+                else if (returntype.isArray())
+                {
+                    outparamType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(returntype,wscontext);
+                    returntypeissimple =
+                        (null != CUtils.getclass4qname(retType.getName())
+                            && CUtils.isSimpleType(CUtils.getclass4qname(retType.getName())));
+                    returntypeisarray = true;
+                }
                 else
                 {
-                    if (returntype.isArray())
-                    {
-                        outparamType =
-                            WrapperUtils
-                                .getClassNameFromParamInfoConsideringArrays(
-                                returntype,
-                                wscontext);
-                        returntypeissimple =
-                            (null != CUtils.getclass4qname(retType.getName())
-                                && CUtils.isSimpleType(
-                                    CUtils.getclass4qname(retType.getName())));
-                        returntypeisarray = true;
-                    }
-                    else
-                    {
-                        outparamType = retType.getLanguageSpecificName();
-                        returntypeissimple = CUtils.isSimpleType(outparamType);
-                        returntypeisarray = retType.isArray();
-                    }
+                    outparamType = retType.getLanguageSpecificName();
+                    returntypeissimple = CUtils.isSimpleType(outparamType);
+                    returntypeisarray = retType.isArray();
                 }
             }
             else
@@ -126,12 +107,12 @@
                 returntypeissimple = CUtils.isSimpleType(outparamType);
             }
         }
+        
         writer.write("\n/*\n");
         writer.write(" * This method wrap the service method \n");
         writer.write(" */\n");
         //method signature
-        writer.write(
-            "int " + classname + "::" + methodName + "(void* pMsg)\n{\n");
+        writer.write("int " + classname + "::" + methodName + "(void* pMsg)\n{\n");
         writer.write("\tIMessageData* mc = (IMessageData*)pMsg;\n");
         writer.write("\tint nStatus;\n");
         writer.write("\tIWrapperSoapSerializer* pIWSSZ = NULL;\n");
@@ -147,23 +128,17 @@
         writer.write("\t\treturn AXIS_FAIL;\n");
         writer.write("\t}\n");
         writer.write("\t/* check whether we have got correct message */\n");
-        writer.write(
-            "\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""
-                + minfo.getInputMessage().getLocalPart()
-                + "\", \""
-                + minfo.getInputMessage().getNamespaceURI()
-                + "\"))\n");
+        writer.write("\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""
+                + minfo.getInputMessage().getLocalPart() + "\", \""
+                + minfo.getInputMessage().getNamespaceURI() + "\"))\n");
         writer.write("\t{\n");
         writer.write("\t\treturn AXIS_FAIL;\n");
         writer.write("\t}\n");
         if (minfo.getOutputMessage() != null)
         {
-            writer.write(
-                "\tpIWSSZ->createSoapMethod(\""
-                    + minfo.getOutputMessage().getLocalPart()
-                    + "\", \""
-                    + minfo.getOutputMessage().getNamespaceURI()
-                    + "\");\n");
+            writer.write("\tpIWSSZ->createSoapMethod(\""
+                    + minfo.getOutputMessage().getLocalPart() + "\", \""
+                    + minfo.getOutputMessage().getNamespaceURI() + "\");\n");
         }
         //create and populate variables for each parameter
         String paraTypeName;
@@ -175,293 +150,169 @@
         {
             ParameterInfo param = (ParameterInfo) paramsB.get(i);
             type = this.wscontext.getTypemap().getType(param.getSchemaName());
+            
             if (type != null && type.isSimpleType())
-            { //schema defined simpleType possibly with restrictions
                 paraTypeName = CUtils.getclass4qname(type.getBaseType());
-            }
+            else if (param.isArray())
+                paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(param,wscontext);
             else
-            {
-                if (param.isArray())
-                {
-                    paraTypeName =
-                        WrapperUtils
-                            .getClassNameFromParamInfoConsideringArrays(
-                            param,
-                            wscontext);
-                }
-                else
-                {
-                    paraTypeName = param.getLangName();
-                }
-            }
+                paraTypeName = param.getLangName();
 
             elementName = param.getElementNameAsString();
             if (type != null && type.isSimpleType())
-            { //schema defined simpleType possibly with restrictions
+            {
                 if (param.isNillable() && 
                         !(CUtils.isPointerType(type.getLanguageSpecificName())))
                 {
-                writer.write(
-                    "\t"
-                        + paraTypeName
-                        + "* v"
-                        + i
-                        + " = pIWSDZ->"
-                        + CUtils.getParameterGetValueMethodName(
-                            paraTypeName,
-                            false)
-                        + "(\""
-                        + elementName
-                        + "\",0);\n");
+                    writer.write("\t" + paraTypeName + "* v" + i
+                            + " = pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+                            + "(\"" + elementName + "\",0);\n");
                 }
                 else
                 {
-                    
-                    writer.write(
-                            "\t"
-                                + paraTypeName
-                                + " v"
-                                + i
-                                + " = *(pIWSDZ->"
-                                + CUtils.getParameterGetValueMethodName(
-                                    paraTypeName,
-                                    false)
-                                + "(\""
-                                + elementName
-                                + "\",0));\n");
+                    writer.write("\t" + paraTypeName + " v" + i
+                            + " = *(pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+                            + "(\"" + elementName + "\",0));\n");
                 }
             }
-            else
+            else if ((CUtils.isSimpleType(param.getLangName())))
             {
-                if ((CUtils.isSimpleType(param.getLangName())))
+                //for simple types    
+                if (param.isArray())
                 {
-                    //for simple types    
-                    if (param.isArray())
-                    { /*parameters that are declared as arrays in the wrapping element.*/
-                        String containedType =
-                            CUtils.getclass4qname(type.getName());
-                        
-                        writer.write("\n\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n");
-                        writer.write(
-                            "\t"
-                                + "Axis_Array * RetArray"
-                                + i
-                                + " = pIWSDZ->getBasicArray("
-                                + CUtils.getXSDTypeForBasicType(containedType)
-                                + ", \""
-                                + elementName
-                                + "\",0);\n");
-                        writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
-                        writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
-                    }
-                    else
-                    {
-                        if (CUtils.isPointerType(paraTypeName))
-                        {
+                    String containedType = CUtils.getclass4qname(type.getName());
+                    
+                    writer.write("\n\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n");
+                    writer.write("\t"
+                            + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+                            + CUtils.getXSDTypeForBasicType(containedType)
+                            + ", \"" + elementName + "\",0);\n");
+                    writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+                    writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
+                }
+                else if (CUtils.isPointerType(paraTypeName))
+                {
+                    writer.write("\n\t" + paraTypeName + " v" + i + " = NULL;\n");
+                    if (param.isOptional())
+                    {
+                        writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
+                        writer.write("\tif ( strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
+                        writer.write("\t{\n");
+                    }
+                    writer.write("\t" + paraTypeName + " value" + i + " = pIWSDZ->"
+                        + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+                        + "(\"" + elementName + "\",0);\n");
+                    writer.write("\tif ( value" + i + " )\n");
+                    writer.write("\t{\n");
+                    writer.write("\t\tv" + i + " = new char[ strlen( value" + i + ") + 1 ];\n");
+                    writer.write("\t\tstrcpy( v" + i + ", value" + i + ");\n");
+                    writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + " );\n");
+                    writer.write("\t}\n");
+                    if (param.isOptional())
+                        writer.write("\t}\n");
+                }
+                else if (param.isNillable()  || param.isOptional())
+                {
+                    writer.write("\n\t" + paraTypeName + " * v" + i + " = NULL;\n");
+                    if (param.isOptional())
+                    {
+                        writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
+                        writer.write("\tif (strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
+                        writer.write("\t{\n");
+                    }
+                    writer.write("\t" + paraTypeName + " * pValue" + i + " = pIWSDZ->"
+                            + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+                            + "(\"" + elementName + "\",0);\n");
+                    writer.write("\tif (pValue" + i +")\n");
+                    writer.write("\t{\n");
+                    writer.write("\t\tv" + i + " = new " + paraTypeName + "();\n");
+                    writer.write("\t\t*v" + i + " = *pValue" + i + ";\n");
+                    writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n");
+                    writer.write("\t}\n");
+                    if (param.isOptional())
+                        writer.write("\t}\n");
+                }
+                else
+                {
+                    writer.write("\n\t" + paraTypeName + " v" + i);
+                    if (!"xsd__base64Binary".equals(paraTypeName) 
+                            && !"xsd__hexBinary".equals(paraTypeName))
+                        writer.write(" = " + CUtils.getInitValue(paraTypeName));
 
-                            writer.write("\n\t"
-                                + paraTypeName
-                                + " v"
-                                + i
-                                + " = NULL;\n");
-                            if (param.isOptional())
-                            {
-                                writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
-                                writer.write("\tif ( strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
-                                writer.write("\t{\n");
-                            }
-                            writer.write("\t" + paraTypeName + " value" + i + " = pIWSDZ->"
-                                + CUtils.getParameterGetValueMethodName(
-                                    paraTypeName,
-                                    false)
-                                + "(\""
-                                + elementName
-                                + "\",0);\n");
-                            writer.write("\tif ( value" + i + " )\n");
-                            writer.write("\t{\n");
-                            writer.write("\t\tv" + i + " = new char[ strlen( value" + i + ") + 1 ];\n");
-                            writer.write("\t\tstrcpy( v" + i + ", value" + i + ");\n");
-                            writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + " );\n");
-                            writer.write("\t}\n");
-                            if (param.isOptional())
-                            {
-                                writer.write("\t}\n");
-                            }
-                        }
-                        else
-                        {
-                            if (param.isNillable()  || param.isOptional())
-                            {
-                                writer.write("\n\t" + paraTypeName + " * v" + i + " = NULL;\n");
-                                if (param.isOptional())
-                                {
-                                    writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
-                                    writer.write("\tif (strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
-                                    writer.write("\t{\n");
-                                }
-                                writer.write("\t" + paraTypeName + " * pValue" + i
-                                        + " = pIWSDZ->"
-                                        + CUtils.getParameterGetValueMethodName(
-                                            paraTypeName,
-                                            false)
-                                        + "(\""
-                                        + elementName
-                                        + "\",0);\n");
-                                writer.write("\tif (pValue" + i +")\n");
-                                writer.write("\t{\n");
-                                writer.write("\t\tv" + i + " = new " + paraTypeName + "();\n");
-                                writer.write("\t\t*v" + i + " = *pValue" + i + ";\n");
-                                writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n");
-                                writer.write("\t}\n");
-                                if (param.isOptional())
-                                {
-                                    writer.write("\t}\n");
-                                }
-                            }
-                            else
-                            {
-                                writer.write("\n\t" + paraTypeName + " v" + i);
-                                if (!"xsd__base64Binary".equals(paraTypeName) && !"xsd__hexBinary".equals(paraTypeName))
-                                {
-                                    writer.write(" = "
-                                            + CUtils.getInitValue(paraTypeName));
-                                }
-                                writer.write(";\n");
-                                writer.write("\t"
-                                        + paraTypeName
-                                        + " * pValue"
-                                        + i
-                                        + " = pIWSDZ->"
-                                        + CUtils.getParameterGetValueMethodName(
-                                                paraTypeName,
-                                                false) + "(\""
-                                        + elementName + "\", 0);\n");
-                                writer.write("\tif (pValue" + i + ")\n");
-                                writer.write("\t{\n");
-                                writer.write("\t\tv" + i + " = *pValue" + i
-                                        + ";\n");
-                                writer.write("\t\tAxis::AxisDelete( (void *) pValue"
-                                        + i
-                                        + ", "
-                                        + CUtils.getXSDTypeForBasicType(paraTypeName)
-                                        + ");\n");
-                                writer.write("\t}\n");
-                            }
-                        }
-                    }
+                    writer.write(";\n");
+                    writer.write("\t"
+                            + paraTypeName + " * pValue" + i + " = pIWSDZ->"
+                            + CUtils.getParameterGetValueMethodName(paraTypeName,false) + "(\""
+                            + elementName + "\", 0);\n");
+                    writer.write("\tif (pValue" + i + ")\n");
+                    writer.write("\t{\n");
+                    writer.write("\t\tv" + i + " = *pValue" + i + ";\n");
+                    writer.write("\t\tAxis::AxisDelete( (void *) pValue"
+                            + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName)+ ");\n");
+                    writer.write("\t}\n");
+                }
+            }
+            else if ((type != null) && type.isArray())
+            {
+                Type arrayType = WrapperUtils.getArrayType(type);
+                QName qname = arrayType.getName();
+                String containedType = null;
+                if (CUtils.isSimpleType(qname))
+                {
+                    containedType = CUtils.getclass4qname(qname);
+                    writer.write("\n\t" + outparamType + "_Array * v" + i +" = new " + outparamType + "_Array();\n");
+                    writer.write("\t"
+                        + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+                        + CUtils.getXSDTypeForBasicType(containedType)
+                        + ", \"" + elementName + "\",0);\n");
+                    writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+                    writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
+                }
+                else if (arrayType.isSimpleType())
+                {
+                    containedType = CUtils.getclass4qname(arrayType.getBaseType());
+                    writer.write("\n\t" + outparamType + " * v" + i +" = new " + outparamType + "();\n");
+                    writer.write("\t"
+                        + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+                        + CUtils.getXSDTypeForBasicType(containedType)
+                        + ", \"" + elementName + "\",0);\n");
+                    writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+                    writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
                 }
                 else
                 {
-                    if ((type != null) && type.isArray())
-                    {
-                        Type arrayType = WrapperUtils.getArrayType(type);
-                        QName qname = arrayType.getName();
-                        String containedType = null;
-                        if (CUtils.isSimpleType(qname))
-                        {
-                            containedType = CUtils.getclass4qname(qname);
-                            
-                            writer.write("\n\t" + outparamType + "_Array * v" + i +" = new " + outparamType + "_Array();\n");
-                            writer.write(
-                                "\t"
-                                    + "Axis_Array * RetArray"
-                                    + i
-                                    + " = pIWSDZ->getBasicArray("
-                                    + CUtils.getXSDTypeForBasicType(
-                                        containedType)
-                                    + ", \""
-                                    + elementName
-                                    + "\",0);\n");
-                            writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
-                            writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
-                        }
-                        else
-                        {
-                            if (arrayType.isSimpleType())
-                            { //SimpleType in the schema 
-                                containedType =
-                                    CUtils.getclass4qname(
-                                        arrayType.getBaseType());
-                                writer.write("\n\t" + outparamType + " * v" + i +" = new " + outparamType + "();\n");
-                                writer.write(
-                                    "\t"
-                                        + "Axis_Array * RetArray"
-                                        + i
-                                        + " = pIWSDZ->getBasicArray("
-                                        + CUtils.getXSDTypeForBasicType(
-                                            containedType)
-                                        + ", \""
-                                        + elementName
-                                        + "\",0);\n");
-                                writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
-                                writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
-                            }
-                            else
-                            {
-                                containedType = qname.getLocalPart();
-                                writer.write("\n\t" + paraTypeName + " * v" + i +" = new " + paraTypeName + "();\n");
-                                writer.write(
-                                    "\t"
-                                        + "pIWSDZ->getCmplxArray(v" + i + ", (void*)Axis_DeSerialize_"
-                                        + containedType
-                                        + ",\n\t\t(void*)Axis_Create_"
-                                        + containedType
-                                        + ", (void*)Axis_Delete_"
-                                        + containedType
-                                        + ",\n\t\t(void*)Axis_GetSize_"
-                                        + containedType
-                                        + ", \""
-                                        + elementName
-                                        + "\", Axis_URI_"
-                                        + containedType
-                                        + ");\n");
-                            }
-                        }
-                    }
-                    else
-                    {
-                        if (param.isAnyType())
-                        {
-                            //for anyType
-                            writer.write(
-                                "\t"
-                                    + paraTypeName
-                                    + " *v"
-                                    + i
-                                    + " = ("
-                                    + paraTypeName
-                                    + "*)pIWSDZ->getAnyObject();\n");
-                        }
-                        else
-                        {
-                            //for complex types 
-                            writer.write(
-                                "\t"
-                                    + paraTypeName
-                                    + " *v"
-                                    + i
-                                    + " = ("
-                                    + paraTypeName
-                                    + "*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"
-                                    + paraTypeName
-                                    + "\n\t\t, (void*)Axis_Create_"
-                                    + paraTypeName
-                                    + ", (void*)Axis_Delete_"
-                                    + paraTypeName
-                                    + "\n\t\t, \""
-                                    + elementName
-                                    + "\", Axis_URI_"
-                                    + paraTypeName
-                                    + ");\n");
-                        }
-                    }
+                    containedType = qname.getLocalPart();
+                    writer.write("\n\t" + paraTypeName + " * v" + i +" = new " + paraTypeName + "();\n");
+                    writer.write("\t"
+                        + "pIWSDZ->getCmplxArray(v" + i + ", (void*)Axis_DeSerialize_" + containedType
+                        + ",\n\t\t(void*)Axis_Create_" + containedType
+                        + ", (void*)Axis_Delete_" + containedType
+                        + ",\n\t\t(void*)Axis_GetSize_" + containedType
+                        + ", \"" + elementName + "\", Axis_URI_" + containedType + ");\n");
                 }
             }
-        }
+            else if (param.isAnyType())
+            {
+                writer.write("\t" + paraTypeName + " *v" + i + " = (" + paraTypeName
+                        + "*)pIWSDZ->getAnyObject();\n");
+            }
+            else
+            {
+                //for complex types 
+                writer.write("\t" + paraTypeName + " *v" + i + " = (" + paraTypeName
+                        + "*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_" + paraTypeName
+                        + "\n\t\t, (void*)Axis_Create_" + paraTypeName
+                        + ", (void*)Axis_Delete_" + paraTypeName
+                        + "\n\t\t, \"" + elementName
+                        + "\", Axis_URI_" + paraTypeName + ");\n");
+            }
+        } // for loop
+        
         writer.write("\n\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus()))\n");
         writer.write("\t{\n");
         writer.write("\t\treturn nStatus;\n");
         writer.write("\t}\n\n");
+        
         // Multiples parameters so fill the methods prototype
         if (isAllTreatedAsOutParams)
         {
@@ -473,38 +324,34 @@
                                     (ParameterInfo) paramsC.get(i), wscontext);
                 writer.write("\t" + typeName);
                 
-                if ( (param.isOptional() || param.isNillable()) && CUtils.isSimpleType(typeName) && !CUtils.isPointerType(typeName) && !param.isArray())
-                {
+                if ( (param.isOptional() || param.isNillable()) 
+                        && CUtils.isSimpleType(typeName) 
+                        && !CUtils.isPointerType(typeName) && !param.isArray())
                     writer.write(" *");
-                }
                 writer.write(" out" + i + ";\n");
             }
         }
+        
         writer.write("\ttry\n\t{\n"); //nithya
         if (returntype != null)
-        { /* Invoke the service when return type not void */
+        { 
+            /* Invoke the service when return type not void */
             returnParamName = returntype.getElementNameAsString();
             writer.write("\t\t" + outparamType);
-            if ((outparamType.lastIndexOf ("_Array") > 0)||(!returntypeisarray 
-                && (!returntypeissimple
-                    || (returntypeissimple        //Chinthana:This has been changed because XSDElementNill Test failed.
-                        && returntype.isNillable()
-                        && !(CUtils.isPointerType(retType.getLanguageSpecificName()))))))
-            {
+            if ((outparamType.lastIndexOf ("_Array") > 0)
+                    ||(!returntypeisarray 
+                            && (!returntypeissimple
+                                    || (returntypeissimple 
+                                            && returntype.isNillable()
+                                            && !(CUtils.isPointerType(retType.getLanguageSpecificName()))))))
                 writer.write(" *");
-            }
             
-            //06-06-2005...................................................................
-            writer.write(" ret = "
-                    + "pWs->"
-                    + methodName
-                    + "(");
+            writer.write(" ret = " + "pWs->" + methodName + "(");
             if (0 < paramsB.size())
             {
                 for (int i = 0; i < paramsB.size() - 1; i++)
-                {
                     writer.write("v" + i + ",");
-                }
+
                 writer.write("v" + (paramsB.size() - 1));
             }
 
@@ -513,15 +360,11 @@
             if (returntypeissimple)
             {
                 if (returntype.isArray())
-                { /*parameters that are declared as arrays in the wrapping element.*/
-                    String containedType =
-                        CUtils.getclass4qname(retType.getName());
-                    writer.write(
-                        "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
-                            + CUtils.getXSDTypeForBasicType(containedType)
-                            + ", \""
-                            + returnParamName
-                            + "\");\n");
+                {
+                    String containedType = CUtils.getclass4qname(retType.getName());
+                    writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+                            + CUtils.getXSDTypeForBasicType(containedType) + ", \""
+                            + returnParamName + "\");\n");
                     writer.write("\t\tdelete ret;\n");
                     writer.write("\t\treturn nStatus;\n");
                 }
@@ -531,326 +374,211 @@
                     if (returntype.isNillable()
                             || CUtils.isPointerType(returnParamTypeName))
                     {
-                        writer.write(
-                            "\t\treturn pIWSSZ->addOutputParam(\""
-                                + returnParamName
-                                + "\", (void*)ret, "
-                                + CUtils.getXSDTypeForBasicType(outparamType)
-                                + ");\n");
+                        writer.write("\t\treturn pIWSSZ->addOutputParam(\"" + returnParamName
+                            + "\", (void*)ret, " + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
                     }
                     else
                     {
-                        writer.write(
-                                "\t\treturn pIWSSZ->addOutputParam(\""
-                                    + returnParamName
-                                    + "\", (void*)&ret, "
-                                    + CUtils.getXSDTypeForBasicType(outparamType)
-                                    + ");\n");
+                        writer.write("\t\treturn pIWSSZ->addOutputParam(\"" + returnParamName
+                            + "\", (void*)&ret, " + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
                     }
                 }
             }
-            else
+            else if (returntypeisarray)
             {
-                if (returntypeisarray)
+                Type arrayType = WrapperUtils.getArrayType(retType);
+                QName qname = arrayType.getName();
+                String containedType = null;
+                if (CUtils.isSimpleType(qname))
                 {
-                    Type arrayType = WrapperUtils.getArrayType(retType);
-                    QName qname = arrayType.getName();
-                    String containedType = null;
-                    if (CUtils.isSimpleType(qname))
-                    {
-                        containedType = CUtils.getclass4qname(qname);
-                        writer.write(
-                                "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
-                                    + CUtils.getXSDTypeForBasicType(containedType)
-                                    + ", \""
-                                    + returnParamName
-                                    + "\");\n");
-                        writer.write("\t\tdelete ret;\n");
-                        writer.write("\t\treturn nStatus;\n");
-                    }
-                    else
-                    {
-                        if (arrayType.isSimpleType())
-                        { //SimpleType in the schema 
-                            containedType =
-                                CUtils.getclass4qname(arrayType.getBaseType());
-                            writer.write(
-                                    "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
-                                        + CUtils.getXSDTypeForBasicType(containedType)
-                                        + ", \""
-                                        + returnParamName
-                                        + "\");\n");
-                            writer.write("\t\tdelete ret;\n");
-                            writer.write("\t\treturn nStatus;\n");
-                        }
-                        else
-                        {
-                            containedType = qname.getLocalPart();
-                            writer.write(
-                                "\t\tnStatus = pIWSSZ->addOutputCmplxArrayParam(ret,"
-                                    + "(void*) Axis_Serialize_"
-                                    + containedType
-                                    + ", (void*) Axis_Delete_"
-                                    + containedType
-                                    + ", (void*) Axis_GetSize_"
-                                    + containedType
-                                    + ", \""
-                                    + returnParamName
-                                    + "\", Axis_URI_"
-                                    + containedType
-                                    + ");\n");
-                            writer.write("\t\tdelete ret;\n");
-                            writer.write("\t\treturn nStatus;\n");
-                        }
-                    }
+                    containedType = CUtils.getclass4qname(qname);
+                    writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+                                + CUtils.getXSDTypeForBasicType(containedType)
+                                + ", \"" + returnParamName + "\");\n");
+                    writer.write("\t\tdelete ret;\n");
+                    writer.write("\t\treturn nStatus;\n");
+                }
+                else if (arrayType.isSimpleType())
+                {
+                    containedType = CUtils.getclass4qname(arrayType.getBaseType());
+                    writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+                            + CUtils.getXSDTypeForBasicType(containedType)
+                            + ", \"" + returnParamName + "\");\n");
+                    writer.write("\t\tdelete ret;\n");
+                    writer.write("\t\treturn nStatus;\n");
                 }
                 else
                 {
-                    if (returntype.isAnyType())
-                    {
-                        writer.write(
-                            "\t\treturn pIWSSZ->addOutputAnyObject(ret);\n");
-                    }
-                    else
-                    {
-                        //complex type
-                        writer.write(
-                            "\t\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"
-                                + outparamType
-                                + ", (void*)Axis_Delete_"
-                                + outparamType
-                                + ", \""
-                                + returnParamName
-                                + "\", Axis_URI_"
-                                + outparamType
-                                + ");\n");
-                    }
+                    containedType = qname.getLocalPart();
+                    writer.write("\t\tnStatus = pIWSSZ->addOutputCmplxArrayParam(ret,"
+                            + "(void*) Axis_Serialize_" + containedType
+                            + ", (void*) Axis_Delete_" + containedType
+                            + ", (void*) Axis_GetSize_" + containedType
+                            + ", \"" + returnParamName
+                            + "\", Axis_URI_" + containedType + ");\n");
+                    writer.write("\t\tdelete ret;\n");
+                    writer.write("\t\treturn nStatus;\n");
                 }
             }
+            else if (returntype.isAnyType())
+                writer.write( "\t\treturn pIWSSZ->addOutputAnyObject(ret);\n");
+            else
+            {
+                //complex type
+                writer.write("\t\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"
+                        + outparamType
+                        + ", (void*)Axis_Delete_" + outparamType
+                        + ", \"" + returnParamName + "\", Axis_URI_" + outparamType + ");\n");
+            }
         }
-        else
+        else if (isAllTreatedAsOutParams)
         {
-            if (isAllTreatedAsOutParams)
+            writer.write("\tpWs->" + methodName + "(");
+            if (0 < paramsB.size())
+                for (int i = 0; i < paramsB.size(); i++)
+                    writer.write("v" + i + ",");
+            
+            ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
+            for (int i = 0; i < paramsC.size() - 1; i++)
+                writer.write("&out" + i + ",");
+
+            writer.write("&out" + (paramsC.size() - 1));
+            writer.write(");\n");
+            paramsC = (ArrayList) minfo.getOutputParameterTypes();
+            for (int i = 0; i < paramsC.size(); i++)
             {
-                writer.write("\tpWs->" + methodName + "(");
-                if (0 < paramsB.size())
+                ParameterInfo param = (ParameterInfo) paramsC.get(i);
+                retType = wscontext.getTypemap().getType(param.getSchemaName());
+                if (retType != null)
                 {
-                    for (int i = 0; i < paramsB.size(); i++)
+                    if (retType.isSimpleType())
                     {
-                        writer.write("v" + i + ",");
+                        returntypeissimple = true;
+                        outparamType =
+                            CUtils.getclass4qname(retType.getBaseType());
+                    }
+                    else
+                    {
+                        outparamType = retType.getLanguageSpecificName();
+                        returntypeisarray = retType.isArray();
+                        returntypeissimple =
+                            CUtils.isSimpleType(outparamType);
                     }
                 }
-                ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
-                for (int i = 0; i < paramsC.size() - 1; i++)
+                else
                 {
-                    writer.write("&out" + i + ",");
+                    outparamType = param.getLangName();
+                    returntypeissimple = CUtils.isSimpleType(outparamType);
                 }
-                writer.write("&out" + (paramsC.size() - 1));
-                writer.write(");\n");
-                paramsC = (ArrayList) minfo.getOutputParameterTypes();
-                for (int i = 0; i < paramsC.size(); i++)
+                
+                returnParamName = param.getElementName().getLocalPart();
+                if (returntypeissimple)
                 {
-                    ParameterInfo param = (ParameterInfo) paramsC.get(i);
-                    retType =
-                        wscontext.getTypemap().getType(param.getSchemaName());
-                    if (retType != null)
+                    if (param.isArray())
                     {
-                        if (retType.isSimpleType())
-                        {
-                            returntypeissimple = true;
-                            outparamType =
-                                CUtils.getclass4qname(retType.getBaseType());
-                        }
-                        else
+                        String containedType = CUtils.getclass4qname(retType.getName());
+                        writer.write("\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
+                                + CUtils.getXSDTypeForBasicType(containedType)
+                                + ", \"" + returnParamName + "\");\n");
+                    }
+                    else if (CUtils.isPointerType(outparamType) 
+                                || param.isOptional() 
+                                || param.isNillable())
+                    {
+                        if (param.isOptional())
                         {
-                            outparamType = retType.getLanguageSpecificName();
-                            returntypeisarray = retType.isArray();
-                            returntypeissimple =
-                                CUtils.isSimpleType(outparamType);
+                            writer.write("\tif (out" + i + ")\n");
+                            writer.write("\t{\n");
+                            writer.write("\t");
                         }
+                        
+                        writer.write("\tpIWSSZ->addOutputParam(\""
+                                    + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+                                    + "\", (void*)out" + i + ", "
+                                    + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
+                        
+                        if (param.isOptional())
+                            writer.write("\t}\n");
                     }
                     else
                     {
-                        outparamType = param.getLangName();
-                        returntypeissimple = CUtils.isSimpleType(outparamType);
+                        writer.write("\tpIWSSZ->addOutputParam(\""
+                                    + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+                                    + "\", (void*)&out" + i + ", "
+                                    + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
                     }
-                    returnParamName = param.getElementName().getLocalPart();
-                    if (returntypeissimple)
+                }
+                else if (returntypeisarray)
+                {
+                    Type arrayType = WrapperUtils.getArrayType(retType);
+                    QName qname = arrayType.getName();
+                    String containedType = null;
+                    
+                    if (CUtils.isSimpleType(qname))
                     {
-                        if (param.isArray())
-                        { /*parameters that are declared as arrays in the wrapping element.*/
-                            String containedType =
-                                CUtils.getclass4qname(retType.getName());
-                            writer.write(
-                                "\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
-                                    + CUtils.getXSDTypeForBasicType(
-                                        containedType)
-                                    + ", \""
-                                    + returnParamName
-                                    + "\");\n");
-                        }
-                        else
-                        {
-                            /**
-                             * Dushshantha:
-                             * i commented out this code to correct wrong code generation for out params
-                             */
-                            
-                            
-                            if (CUtils.isPointerType(outparamType) || param.isOptional() || param.isNillable())
-                            {
-                                if (param.isOptional())
-                                {
-                                    writer.write("\tif (out" + i + ")\n");
-                                    writer.write("\t{\n");
-                                    writer.write("\t");
-                                }
-                                writer.write(
-                                        "\tpIWSSZ->addOutputParam(\""
-                                            + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
-                                            + "\", (void*)out"
-                                            + i
-                                            + ", "
-                                            + CUtils.getXSDTypeForBasicType(outparamType)
-                                            + ");\n");
-                                if (param.isOptional())
-                                {
-                                    writer.write("\t}\n");
-                                }
-                            }
-                            else
-                            {
-                                writer.write(
-                                        "\tpIWSSZ->addOutputParam(\""
-                                            + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
-                                            + "\", (void*)&out"
-                                            + i
-                                            + ", "
-                                            + CUtils.getXSDTypeForBasicType(outparamType)
-                                            + ");\n");
-                            }
-                            //10/05/2005..........................................................
-                        }
+                        containedType = CUtils.getclass4qname(qname);
+                        writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
+                                + i + ")," + CUtils.getXSDTypeForBasicType( containedType)
+                                + ", \"" + returnParamName + "\");\n");
+                        writer.write("\tdelete out" + i + ";\n");
+                    }
+                    else if (arrayType.isSimpleType())
+                    {
+                        containedType = CUtils.getclass4qname(arrayType.getBaseType());
+                        writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
+                                + i + ")," + CUtils.getXSDTypeForBasicType(containedType)
+                                + ", \"" + returnParamName + "\");\n");
+                        writer.write("\tdelete out" + i + ";\n");
                     }
                     else
                     {
-
-                        if (returntypeisarray)
-                        {
-                            Type arrayType = WrapperUtils.getArrayType(retType);
-                            QName qname = arrayType.getName();
-                            String containedType = null;
-                            if (CUtils.isSimpleType(qname))
-                            {
-                                containedType = CUtils.getclass4qname(qname);
-                                writer.write(
-                                    "\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
-                                        + i
-                                        + "),"
-                                        + CUtils.getXSDTypeForBasicType(
-                                            containedType)
-                                        + ", \""
-                                        + returnParamName
-                                        + "\");\n");
-                                writer.write("\tdelete out" + i + ";\n");
-                            }
-                            else
-                            {
-                                if (arrayType.isSimpleType())
-                                { //SimpleType in the schema 
-                                    containedType =
-                                        CUtils.getclass4qname(
-                                            arrayType.getBaseType());
-                                    writer.write(
-                                        "\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
-                                            + i
-                                            + "),"
-                                            + CUtils.getXSDTypeForBasicType(
-                                                containedType)
-                                            + ", \""
-                                            + returnParamName
-                                            + "\");\n");
-                                    writer.write("\tdelete out" + i + ";\n");
-                                }
-                                else
-                                {
-                                    containedType = qname.getLocalPart();
-                                    writer.write(
-                                        "\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out"
-                                            + i
-                                            + "),"
-                                            + "(void*) Axis_Serialize_"
-                                            + containedType
-                                            + ", (void*) Axis_Delete_"
-                                            + containedType
-                                            + ", (void*) Axis_GetSize_"
-                                            + containedType
-                                            + ", \""
-                                            + returnParamName
-                                            + "\", Axis_URI_"
-                                            + containedType
-                                            + ");\n");
-                                    writer.write("\tdelete out" + i + ";\n");
-                                }
-                            }
-                        }
-                        else
-                        {
-                            if (param.isAnyType())
-                            {
-                                //anyType
-                                writer.write(
-                                    "\tpIWSSZ->addOutputAnyObject(out"
-                                        + i
-                                        + ");\n");
-                            }
-                            else
-                            {
-                                if (param.isOptional())
-                                {
-                                    writer.write("\tif (out" + i + ")\n");
-                                    writer.write("\t{\n");
-                                    writer.write("\t");
-                                }
-                                //complex type
-                                writer.write(
-                                    "\tpIWSSZ->addOutputCmplxParam(out"
-                                        + i
-                                        + ", (void*)Axis_Serialize_"
-                                        + outparamType
-                                        + ", (void*)Axis_Delete_"
-                                        + outparamType
-                                        + ", \""
-                                        + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
-                                        + "\", Axis_URI_"
-                                        + outparamType
-                                        + ");\n");
-                                if (param.isOptional())
-                                {
-                                    writer.write("\t}\n");
-                                }
-                            }
-                        }
+                        containedType = qname.getLocalPart();
+                        writer.write("\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out" + i  + "),"
+                                + "(void*) Axis_Serialize_" + containedType
+                                + ", (void*) Axis_Delete_" + containedType
+                                + ", (void*) Axis_GetSize_" + containedType
+                                + ", \"" + returnParamName + "\", Axis_URI_" + containedType + ");\n");
+                        writer.write("\tdelete out" + i + ";\n");
                     }
                 }
-                writer.write("\treturn AXIS_SUCCESS;\n");
-            }
-            else
-            { //method does not return anything
-                /* Invoke the service when return type is void */
-                writer.write("\tpWs->" + methodName + "(");
-                if (0 < paramsB.size())
+                else if (param.isAnyType())
+                    writer.write("\tpIWSSZ->addOutputAnyObject(out" + i + ");\n");
+                else
                 {
-                    for (int i = 0; i < paramsB.size() - 1; i++)
+                    if (param.isOptional())
                     {
-                        writer.write("v" + i + ",");
-                    }
-                    writer.write("v" + (paramsB.size() - 1));
+                        writer.write("\tif (out" + i + ")\n");
+                        writer.write("\t{\n");
+                        writer.write("\t");
+                    }
+                    //complex type
+                    writer.write("\tpIWSSZ->addOutputCmplxParam(out" + i
+                            + ", (void*)Axis_Serialize_" + outparamType
+                            + ", (void*)Axis_Delete_" + outparamType
+                            + ", \""  + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+                            + "\", Axis_URI_" + outparamType + ");\n");
+                    
+                    if (param.isOptional())
+                        writer.write("\t}\n");
                 }
-                writer.write(");\n");
-                writer.write("\treturn AXIS_SUCCESS;\n");
             }
+            writer.write("\treturn AXIS_SUCCESS;\n");
         }
+        else
+        { 
+            //method does not return anything Invoke the service when return type is void
+            writer.write("\tpWs->" + methodName + "(");
+            if (0 < paramsB.size())
+            {
+                for (int i = 0; i < paramsB.size() - 1; i++)
+                    writer.write("v" + i + ",");
+
+                writer.write("v" + (paramsB.size() - 1));
+            }
+            writer.write(");\n");
+            writer.write("\treturn AXIS_SUCCESS;\n");
+        }
+        
         writer.write("\t}\n"); //nithya          
         Iterator paramsFault = minfo.getFaultType().iterator();
         String faultInfoName = null;
@@ -867,18 +595,15 @@
                 ParameterInfo par = (ParameterInfo) paramInfo.get(i);
                 paramName = par.getParamName();
                 langName = par.getLangName();
-                faultType =
-                    WrapperUtils.getClassNameFromParamInfoConsideringArrays(
-                        par,
-                        wscontext);
+                faultType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(par,wscontext);
                 writeExceptions(faultType, faultInfoName, paramName, langName);
             }
         }
         writer.write("\tcatch(...)\n");
         writer.write("\t{\n");
         writer.write("\t\treturn AXIS_FAIL;\n");
-        writer.write("\t}\n"); //nithya
-        //write end of method
+        writer.write("\t}\n");
+
         writer.write("}\n");
     }
     /* (non-Javadoc)
@@ -898,30 +623,17 @@
             writer.write("\t{\n");
             writer.write("\t\tif (pObjFault)\n");
             writer.write("\t\t{\n");
-            writer.write(
-                "\t\t\tpIWSSZ->createSoapFault(\""
-                    + faultInfoName
-                    + "\", \""
-                    + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
+            writer.write("\t\t\tpIWSSZ->createSoapFault(\"" + faultInfoName
+                    + "\", \"" + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
                     + "\",\"AxisC++ Faultcode\", \"Custom Out of bound exception\");\n");
-            //    writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n");//damitha                             
-            writer.write(
-                "\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"
-                    + langName
-                    + ",\n");
-            writer.write(
-                "\t\t\t\t(void*) Axis_Delete_"
-                    + langName
-                    + ",\""
-                    + faultInfoName
-                    + "\", Axis_URI_"
-                    + langName
-                    + ");\n");
+
+            writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_" + langName + ",\n");
+            writer.write("\t\t\t\t(void*) Axis_Delete_" + langName
+                    + ",\"" + faultInfoName + "\", Axis_URI_" + langName + ");\n");
             writer.write("\t\t\tthrow AxisServiceException(AXISC_SERVICE_THROWN_EXCEPTION);\n");
             writer.write("\t\t}\n");
             writer.write("\t\treturn AXIS_FAIL;\n");
             writer.write("\t}\n");
-//            writer.write("\n");
         }
         catch (IOException e)
         {
@@ -944,48 +656,30 @@
             {
                 type = (Type) types.next();
                 if (type.isSimpleType())
-                {
                     continue;
-                }
+
                 if (type.isArray())
-                {
                     continue;
-                }
+
                 typeName = type.getLanguageSpecificName();
                 if (typeName.startsWith(">"))
-                {
                     continue;
-                }
+
                 typeSet.add(typeName);
             }
+            
             Iterator itr = typeSet.iterator();
             while (itr.hasNext())
             {
                 typeName = itr.next().toString();
-                writer.write(
-                    "extern int Axis_DeSerialize_"
-                        + typeName
-                        + "("
-                        + typeName
-                        + "* param, IWrapperSoapDeSerializer* pDZ);\n");
-                writer.write(
-                    "extern void* Axis_Create_"
-                        + typeName
-                        + "("
-                        + typeName
-                        + " *Obj, bool bArray = false, int nSize=0);\n");
-                writer.write(
-                    "extern void Axis_Delete_"
-                        + typeName
-                        + "("
-                        + typeName
-                        + "* param, bool bArray = false, int nSize=0);\n");
-                writer.write(
-                    "extern int Axis_Serialize_"
-                        + typeName
-                        + "("
-                        + typeName
-                        + "* param, IWrapperSoapSerializer* pSZ, bool bArray = false);\n");
+                writer.write("extern int Axis_DeSerialize_" + typeName + "("
+                        + typeName + "* param, IWrapperSoapDeSerializer* pDZ);\n");
+                writer.write("extern void* Axis_Create_" + typeName + "("
+                        + typeName + " *Obj, bool bArray = false, int nSize=0);\n");
+                writer.write("extern void Axis_Delete_" + typeName + "("
+                        + typeName + "* param, bool bArray = false, int nSize=0);\n");
+                writer.write("extern int Axis_Serialize_" + typeName + "("
+                        + typeName + "* param, IWrapperSoapSerializer* pSZ, bool bArray = false);\n");
                 writer.write("extern int Axis_GetSize_" + typeName + "();\n\n");
             }
         }