Author: dushshantha
Date: Wed Dec 21 02:51:59 2005
New Revision: 358261

URL: http://svn.apache.org/viewcvs?rev=358261&view=rev
Log:
fixed the code generation error for Unbounded Choice elements.

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

Modified: 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java?rev=358261&r1=358260&r2=358261&view=diff
==============================================================================
--- 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
 (original)
+++ 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
 Wed Dec 21 02:51:59 2005
@@ -180,8 +180,13 @@
                     writer.write("\tif(" + parameterName + " == NULL)\n");
                     writer.write("\t{\n");
                     writer.write("\t\t" + parameterName + " = new " + 
properParamName + "();\n");
+                    if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                       writer.write("\t\t*" + parameterName + " = new " + type 
+ "_Array();\n");
                     writer.write("\t}\n");
-                    writer.write("\t" + parameterName + "->clone(*pInValue); 
\n");
+                    if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                       writer.write("\t(*" + parameterName + 
")->clone(*(*pInValue)); \n");
+                    else
+                       writer.write("\t" + parameterName + 
"->clone(*pInValue); \n");
                     writer.write("}\n");
                 }
                 else
@@ -619,7 +624,19 @@
                 //if Array
                 if (attribs[i].isSimpleType())
                 {
-                       writer.write("\tpSZ->serializeBasicArray(param->"
+                       if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                               
writer.write("\tpSZ->serializeBasicArray(*(param->"
+                                + attribs[i].getParamName()
+                                + "), "
+                                + namespace
+                                + ","
+                                + CUtils.getXSDTypeForBasicType(attribs[i]
+                                                .getTypeName())
+                                + ", \""
+                                + attribs[i].getParamNameAsSOAPElement()
+                                + "\");\n");
+                       else
+                               
writer.write("\tpSZ->serializeBasicArray(param->"
                             + attribs[i].getParamName()
                             + ", "
                             + namespace
@@ -929,9 +946,15 @@
                             + "\",0);\n");
                     writer.write("\tif(param->" + 
attribs[i].getParamNameAsMember() + " == NULL)\n");
                     writer.write("\t{\n");
-                    writer.write("\t\tparam->" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() + 
"_Array();\n");
+                    if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                       writer.write("\t\tparam->" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() + 
"_Array*();\n");
+                    else
+                       writer.write("\t\tparam->" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() + 
"_Array();\n");
                     writer.write("\t}\n");
-                    writer.write("\tparam->" + 
attribs[i].getParamNameAsMember() + "->clone( *array" + arrayCount + ");\n");
+                    if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                       writer.write("\t(*(param->" + 
attribs[i].getParamNameAsMember() + "))->clone(*array" + arrayCount + ");\n");
+                    else
+                       writer.write("\tparam->" + 
attribs[i].getParamNameAsMember() + "->clone( *array" + arrayCount + ");\n");
                     writer.write("\tAxis::AxisDelete((void*) array" + 
arrayCount + ", XSD_ARRAY);\n\n");
                 }
                 else
@@ -1227,7 +1250,12 @@
             {
                 if (attribs[i].isArray())
                 {
-                    writer.write("\t" + attribs[i].getParamNameAsMember() + " 
= new " + attribs[i].getTypeName() +"_Array();\n");
+                       if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement()){
+                               writer.write("\t" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() 
+"_Array*();\n");
+                               writer.write("\t*" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() 
+"_Array();\n");
+                       }
+                       else
+                               writer.write("\t" + 
attribs[i].getParamNameAsMember() + " = new " + attribs[i].getTypeName() 
+"_Array();\n");
                 }
             }
             writer.write("\treset();\n");
@@ -1240,7 +1268,10 @@
             {
                 if (attribs[i].isArray())
                 {      
-                    writer.write("\t" + attribs[i].getParamName() + " = new " 
+ attribs[i].getTypeName() + "_Array(*original." + attribs[i].getParamName() + 
");\n");
+                       if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                               writer.write("\t" + attribs[i].getParamName() + 
" = new " + attribs[i].getTypeName() + "_Array*(*original." + 
attribs[i].getParamName() + ");\n");
+                       else
+                               writer.write("\t" + attribs[i].getParamName() + 
" = new " + attribs[i].getTypeName() + "_Array(*original." + 
attribs[i].getParamName() + ");\n");
                 }
                 else if (attribs[i].isAnyType())
                 {
@@ -1319,7 +1350,10 @@
             {
                 if (attribs[i].isArray())
                 {
-                    writer.write("\t" + attribs[i].getParamNameAsMember() + 
"->clear();\n");
+                       if 
(attribs[i].getChoiceElement()||attribs[i].getAllElement())
+                               writer.write("\t(*" + 
attribs[i].getParamNameAsMember() + ")->clear();\n");
+                       else
+                               writer.write("\t" + 
attribs[i].getParamNameAsMember() + "->clear();\n");
                 }
                 else if (!attribs[i].isSimpleType())
                 {

Modified: 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java?rev=358261&r1=358260&r2=358261&view=diff
==============================================================================
--- 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java
 (original)
+++ 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java
 Wed Dec 21 02:51:59 2005
@@ -439,18 +439,34 @@
                                        {
                                                if(attribs[i].getAllElement() 
|| attribs[i].getChoiceElement())
                                                {
-                                                       writer.write( "\n\t"
+                                                       if 
(attribs[i].isArray()){
+                                                               writer.write( 
"\n\t"
+                                                 + 
getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i])
+                                                 + " * get"
+                                                 + methodName
+                                                 + "();\n");
+
+                                                               writer.write( 
"\t"
+                                                 + "void set"
+                                                 + methodName
+                                                 + "("
+                                                 + 
getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i])
+                                                 + " * pInValue");
+                                                       }
+                                                       else{
+                                                               writer.write( 
"\n\t"
                                          + 
getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i])
                                          + " get"
                                          + methodName
                                          + "();\n");
 
-                                                       writer.write( "\t"
+                                                               writer.write( 
"\t"
                                          + "void set"
                                          + methodName
                                          + "("
                                          + 
getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i])
                                          + " pInValue");
+                                                       }
                                                }
                                                else
                                                {


Reply via email to