You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by du...@apache.org on 2005/12/21 11:52:05 UTC

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

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
 						{