Author: nadiramra
Date: Thu Apr 13 18:47:33 2006
New Revision: 393998

URL: http://svn.apache.org/viewcvs?rev=393998&view=rev
Log:
C support fixes/enhancements.

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

Modified: 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=393998&r1=393997&r2=393998&view=diff
==============================================================================
--- 
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
 Thu Apr 13 18:47:33 2006
@@ -269,7 +269,7 @@
             {
                 anyCounter += 1;
                 writer.write("\taxiscSerializeAnyObject(pSZ, param->any" + 
Integer.toString(anyCounter) +");\n");
-            }
+            } 
             else if (attribs[i].isArray())
             {
                 if (attribs[i].isSimpleType() || 
attribs[i].getType().isSimpleType())
@@ -760,252 +760,103 @@
         writer.write("\telse\n");
         
         writer.write("\t{\n");
+        for (int i = 0; i < attribs.length; i++)
+        {
+            if (attribs[i].isSimpleType() || 
attribs[i].getType().isSimpleType())
+            {
+                String passedInBaseType;
+                String baseTypeName = null;
+                
+                if (!attribs[i].isSimpleType() && 
attribs[i].getType().isSimpleType())
+                    baseTypeName = 
CUtils.getclass4qname(attribs[i].getType().getBaseType());
+                else
+                    baseTypeName = attribs[i].getTypeName();
+                
+                if (attribs[i].isArray())
+                    passedInBaseType = "XSDC_ARRAY";
+                else
+                    passedInBaseType = 
CUtils.getXSDTypeForBasicType(baseTypeName);
+                                
+                writer.write("\t\tif (param->" + 
attribs[i].getParamNameAsMember() + " != NULL)\n");
+                writer.write("\t\t\taxiscAxisDelete(param->" + 
attribs[i].getParamNameAsMember() 
+                        + "," + passedInBaseType + ");\n");
+                writer.write("\n");
+            }
+            else
+            {
+                String isArray = "0";
+                String arraySize = "0";    
+                
+                if (attribs[i].isArray())
+                {
+                    isArray = "1";
+                    arraySize = "param->" + attribs[i].getParamName() + 
"->m_Size";
+                }
+                
+                writer.write("\t\tif (param->" + attribs[i].getParamName());
+                writer.write("\t\t\tAxis_Delete_" + attribs[i].getTypeName()
+                              + "(param->" + attribs[i].getParamName()
+                              + isArray + "," + arraySize + ");\n");
+            }
+        }
+        
         writer.write("\t\tfree(param);\n");
         writer.write("\t}\n");
         
         writer.write("}\n");
     }
 
-// Following will need to be used above....
-//    private void writeDeleteGlobalMethod() throws IOException
-//    {
-//        boolean hasComplexTypeOrArray = false;
-//        for (int i = 0; i < attribs.length; i++)
-//        {
-//            if (!attribs[i].isSimpleType() || 
-//                "xsdc__string".equals(attribs[i].getTypeName()) ||
-//                "xsdc__base64Binary".equals(attribs[i].getTypeName()) ||
-//                "xsdc__hexBinary".equals(attribs[i].getTypeName()))
-//            {
-//                  writer.write("\tint x, i;\n");
-//                  writer.write("\t" + classname + "* pTemp;\n");    
-//                  hasComplexTypeOrArray = true;
-//                  break;
-//            }
-//        }
-//        writer.write("\tif (bArray)\n");
-//        writer.write("\t{\n");
-//        if (hasComplexTypeOrArray)
-//        {
-//            writer.write(
-//                "\t\t/*delete any pointer members or array members of this 
struct here*/\n");
-//            writer.write("\t\tpTemp = param;\n");
-//            writer.write("\t\tfor (x=0; x<nSize; x++)\n");
-//            writer.write("\t\t{\n");
-//            for (int i = 0; i < attribs.length; i++)
-//            {
-//                if (attribs[i].isArray())
-//                {
-//                    if (attribs[i].isSimpleType())
-//                    {
-//                        writer.write(
-//                            "\t\t\tif (pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ".m_Array) free(pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ".m_Array);\n");
-//                    }
-//                    else
-//                    {
-//                        writer.write(
-//                            "\t\t\tif (pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ".m_Array) Axis_Delete_"
-//                                + attribs[i].getTypeName()
-//                                + "(pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ".m_Array, true, pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ".m_Size);\n");
-//                    }
-//                }
-//                else
-//                    if (attribs[i].isAnyType())
-//                    {
-//                        writer.write(
-//                            "\t\t\tif (pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ") \n\t\t\t{ \n");
-//                        writer.write(
-//                            "\t\t\t\tfor (i=0; i<pTemp->"
-//                                + attribs[i].getParamName()
-//                                + "->_size; i++)\n\t\t\t\t{\n");
-//                        writer.write(
-//                            "\t\t\t\t\tif (pTemp->"
-//                                + attribs[i].getParamName()
-//                                + "->_array[i]) free(pTemp->"
-//                                + attribs[i].getParamName()
-//                                + "->_array[i]);\n");
-//                        writer.write("\t\t\t\t}\n");
-//                        writer.write(
-//                            "\t\t\t\tfree(pTemp->"
-//                                + attribs[i].getParamName()
-//                                + ");\n");
-//                        writer.write("\t\t\t}\n");
-//                    }
-//                    else
-//                        if (!attribs[i].isSimpleType())
-//                        {
-//                            writer.write(
-//                                "\t\t\tif (pTemp->"
-//                                    + attribs[i].getParamName()
-//                                    + ") Axis_Delete_"
-//                                    + attribs[i].getTypeName()
-//                                    + "(pTemp->"
-//                                    + attribs[i].getParamName()
-//                                    + ", false, 0);\n");
-//                        }
-//                        else
-//                            if 
("xsdc__string".equals(attribs[i].getTypeName()))
-//                            {
-//                                writer.write(
-//                                    "\t\t\tif(pTemp->"
-//                                        + attribs[i].getParamName()
-//                                        + ") free(pTemp->"
-//                                        + attribs[i].getParamName()
-//                                        + ");\n");
-//                            }
-//                            else
-//                                if ("xsdc__base64Binary"
-//                                    .equals(attribs[i].getTypeName()))
-//                                {
-//                                    writer.write(
-//                                        "\t\t\tif(pTemp->"
-//                                            + attribs[i].getParamName()
-//                                            + ".__ptr) free(pTemp->"
-//                                            + attribs[i].getParamName()
-//                                            + ".__ptr);\n");
-//                                }
-//                                else
-//                                    if ("xsdc__hexBinary"
-//                                        .equals(attribs[i].getTypeName()))
-//                                    {
-//                                        writer.write(
-//                                            "\t\t\tif(pTemp->"
-//                                                + attribs[i].getParamName()
-//                                                + ".__ptr) free(pTemp->"
-//                                                + attribs[i].getParamName()
-//                                                + ".__ptr);\n");
-//                                    }
-//                                    else
-//                                        if (attribs[i].isOptional())
-//                                        {
-//                                            //TODO
-//                                        }
-//            }
-//            writer.write("\t\t\tpTemp++;\n");
-//            writer.write("\t\t}\n");
-//        }
-//        writer.write("\t\tfree(param);\n");
-//        writer.write("\t}\n");
-//        writer.write("\telse\n");
-//        writer.write("\t{\n");
-//        writer.write("\t\t/*delete any pointer members or array members of 
this struct here*/\n");
 //        for (int i = 0; i < attribs.length; i++)
 //        {
 //            if (attribs[i].isArray())
 //            {
 //                if (attribs[i].isSimpleType())
 //                {
-//                    writer.write(
-//                        "\t\tif (param->"
-//                            + attribs[i].getParamName()
-//                            + ".m_Array) free(param->"
-//                            + attribs[i].getParamName()
-//                            + ".m_Array);\n");
+//                    writer.write("\t\tif (param->" + 
attribs[i].getParamName()
+//                            + ".m_Array) free(param->" + 
attribs[i].getParamName() + ".m_Array);\n");
 //                }
 //                else
 //                {
-//                    writer.write(
-//                        "\t\tif (param->"
-//                            + attribs[i].getParamName()
-//                            + ".m_Array) Axis_Delete_"
-//                            + attribs[i].getTypeName()
-//                            + "(param->"
-//                            + attribs[i].getParamName()
-//                            + ".m_Array, true, param->"
-//                            + attribs[i].getParamName()
-//                            + ".m_Size);\n");
+//                    writer.write("\t\tif (param->" + 
attribs[i].getParamName()
+//                            + ".m_Array) Axis_Delete_" + 
attribs[i].getTypeName()
+//                            + "(param->" + attribs[i].getParamName()
+//                            + ".m_Array, true, param->" + 
attribs[i].getParamName() + ".m_Size);\n");
 //                }
 //            }
-//            else
-//                if (attribs[i].isAnyType())
+//            else if (attribs[i].isAnyType())
 //                {
-//                    writer.write(
-//                        "\t\tif (param->"
-//                            + attribs[i].getParamName()
-//                            + ") \n\t\t{ \n");
-//                    writer.write(
-//                        "\t\t\tfor (i=0; i<param->"
-//                            + attribs[i].getParamName()
+//                    writer.write("\t\tif (param->" + 
attribs[i].getParamName() + ") \n\t\t{ \n");
+//                    writer.write("\t\t\tfor (i=0; i<param->" + 
attribs[i].getParamName()
 //                            + "->_size; i++)\n\t\t\t{\n");
-//                    writer.write(
-//                        "\t\t\t\tif (param->"
-//                            + attribs[i].getParamName()
-//                            + "->_array[i]) free(param->"
-//                            + attribs[i].getParamName()
-//                            + "->_array[i]);\n");
+//                    writer.write("\t\t\t\tif (param->"
+//                            + attribs[i].getParamName() "->_array[i]) 
free(param->"
+//                            + attribs[i].getParamName() + "->_array[i]);\n");
 //                    writer.write("\t\t\t}\n");
-//                    writer.write(
-//                        "\t\t\tfree(param->"
-//                            + attribs[i].getParamName()
-//                            + ");\n");
+//                    writer.write("\t\t\tfree(param->" + 
attribs[i].getParamName() + ");\n");
 //                    writer.write("\t\t}\n");
 //                }
-//                else
-//                    if (!attribs[i].isSimpleType())
+//                else if (!attribs[i].isSimpleType())
 //                    {
-//                        writer.write(
-//                            "\t\tif (param->"
-//                                + attribs[i].getParamName()
-//                                + ") Axis_Delete_"
-//                                + attribs[i].getTypeName()
-//                                + "(param->"
-//                                + attribs[i].getParamName()
-//                                + ", false, 0);\n");
+//                        writer.write("\t\tif (param->" + 
attribs[i].getParamName()
+//                                + ") Axis_Delete_" + attribs[i].getTypeName()
+//                                + "(param->" + attribs[i].getParamName() + 
", false, 0);\n");
 //                    }
-//                    else
-//                        if ("xsdc__string".equals(attribs[i].getTypeName()))
+//                    else if ("xsdc__string".equals(attribs[i].getTypeName()))
+//                        {
+//                            writer.write("\t\tif(param->" + 
attribs[i].getParamName()
+//                                    + ") free(param->" + 
attribs[i].getParamName() + ");\n");
+//                        }
+//                        else if 
("xsdc__base64Binary".equals(attribs[i].getTypeName())
+//                                 "xsdc__hexBinary" 
.equals(attribs[i].getTypeName()))
 //                        {
-//                            writer.write(
-//                                "\t\tif(param->"
-//                                    + attribs[i].getParamName()
-//                                    + ") free(param->"
-//                                    + attribs[i].getParamName()
-//                                    + ");\n");
+//                            writer.write("\t\tif(param->" + 
attribs[i].getParamName()
+//                                    + ".__ptr) free(param->" + 
attribs[i].getParamName() + ".__ptr);\n");
 //                        }
-//                        else
-//                            if ("xsdc__base64Binary"
-//                                .equals(attribs[i].getTypeName()))
-//                            {
-//                                writer.write(
-//                                    "\t\tif(param->"
-//                                        + attribs[i].getParamName()
-//                                        + ".__ptr) free(param->"
-//                                        + attribs[i].getParamName()
-//                                        + ".__ptr);\n");
-//                            }
-//                            else
-//                                if ("xsdc__hexBinary"
-//                                    .equals(attribs[i].getTypeName()))
-//                                {
-//                                    writer.write(
-//                                        "\t\tif(param->"
-//                                            + attribs[i].getParamName()
-//                                            + ".__ptr) free(param->"
-//                                            + attribs[i].getParamName()
-//                                            + ".__ptr);\n");
-//                                }
-//                                else
-//                                    if (attribs[i].isOptional())
-//                                    {
+//                        else if (attribs[i].isOptional())
+//                        {
 //                                        //TODO
-//                                    }
+//                        }
 //        }
-//        writer.write("\t\tfree(param);\n");
-//        writer.write("\t}\n");
-//        writer.write("}\n");
-//    }    
     
     /**
      * @throws WrapperFault


Reply via email to