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 pr...@apache.org on 2005/11/15 16:18:56 UTC
svn commit: r344374 -
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
Author: prestonf
Date: Tue Nov 15 07:18:52 2005
New Revision: 344374
URL: http://svn.apache.org/viewcvs?rev=344374&view=rev
Log:
Part of the fix for AXISCPP-149. This covers all of the complex types.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.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=344374&r1=344373&r2=344374&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 Tue Nov 15 07:18:52 2005
@@ -492,36 +492,17 @@
if (nillable)
{
- writer.write("\tAxis_Array\tsAA" + i + ";\n\n");
- writer.write("\tsAA" + i + ".m_Size = 1;\n\n");
+ String typeName = attribs[i].getTypeName();
+ String countName = "iCount" + i;
+
+ writer.write( "\tint\t\t\t\tiSize = 0;\n");
+ writer.write( "\tconst " + typeName + " ** pp" + typeName + " = param->" + attribs[i].getParamName() + "->get( (int&) iSize);\n\n");
- if (moreThanOne)
- {
- writer.write("\tfor( int iCount" + i
- + " = 0; iCount" + i
- + " < param->count; iCount" + i + "++)\n");
- }
- else
- {
- writer.write("\tfor( int iCount" + i
- + " = 0; iCount" + i + " < param->"
- + attribs[i].getParamName()
- + ".m_Size; iCount" + i + "++)\n");
- }
+ writer.write("\tfor( int " + countName + " = 0; " + countName + " < iSize; " + countName + "++)\n");
writer.write("\t{\n");
- if (moreThanOne)
- {
- writer.write("\t\tif( param->infos.m_Array[iCount"
- + i + "] == NULL)\n");
- }
- else
- {
- writer.write("\t\tif( param->"
- + attribs[i].getParamName()
- + ".m_Array[iCount" + i + "] == NULL)\n");
- }
+ writer.write("\t\tif( pp" + typeName + "[" + countName + "] == NULL)\n");
writer.write("\t\t{\n");
writer.write("\t\t\tpSZ->serializeAsAttribute( \"<"
@@ -532,31 +513,11 @@
writer.write("\t\telse\n");
writer.write("\t\t{\n");
- if (moreThanOne)
- {
- writer.write("\t\t\tsAA"
- + i
- + ".m_Array = (void **)param->infos.m_Array[iCount"
- + i + "];\n");
- }
- else
- {
- writer.write("\t\t\tsAA" + i + ".m_Array = param->"
- + attribs[i].getParamName()
- + ".m_Array[iCount" + i + "];\n\n");
- }
-
- writer.write("\t\t\tpSZ->serializeCmplxArray( &sAA" + i
- + ",\n");
- writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_Serialize_"
- + arrayType + ",\n");
- writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_Delete_"
- + arrayType + ",\n");
- writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_GetSize_"
- + arrayType + ",\n");
- writer.write("\t\t\t\t\t\t\t\t\t \""
- + attribs[i].getParamName() + "\", Axis_URI_"
- + arrayType + ");\n");
+ writer.write("\t\t\tpSZ->serializeCmplxArray( (Axis_Array *) &pp" + typeName + "[" + countName + "],\n");
+ writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_Serialize_"+ arrayType + ",\n");
+ writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_Delete_"+ arrayType + ",\n");
+ writer.write("\t\t\t\t\t\t\t\t\t (void*) Axis_GetSize_"+ arrayType + ",\n");
+ writer.write("\t\t\t\t\t\t\t\t\t \""+ attribs[i].getParamName() + "\", Axis_URI_" + arrayType + ");\n");
writer.write("\t\t}\n");
writer.write("\t}\n");
}
@@ -834,10 +795,16 @@
+ "\t\t\t\t\t\t\t\t \""
+ attribs[i].getElementNameAsString()
+ "\", Axis_URI_" + arrayType + ");\n\n");
- writer.write("\tparam->" + attribs[i].getElementNameAsString() + " = new " + arrayType + "_Array();\n");
- writer.write("\tparam->" + attribs[i].getElementNameAsString() + "->clone(*(" + arrayType + "_Array *) array);\n");
- writer.write("\t((" + arrayType + "_Array*) array)->clear();\n");
- writer.write("\tAxis::AxisDelete((void *) array, XSD_ARRAY);\n");
+
+ String typeName = attribs[i].getParamNameAsMember();
+ String typeNamePointer = "p" + attribs[i].getElementNameAsString();
+ String typeNameArray = arrayType + "_Array";
+
+ writer.write("\t" + typeNameArray + " * " + typeNamePointer + " = new " + typeNameArray + "();\n");
+ writer.write("\t" + typeNamePointer + "->clone(*(" + typeNameArray + " *) array);\n\n");
+ writer.write("\t((" + typeNameArray + "*) array)->clear();\n\n");
+ writer.write("\tparam->set" + typeName + "( " + typeNamePointer + ");\n\n");
+ writer.write("\tAxis::AxisDelete((void *) array, XSD_ARRAY);\n\n");
}
}
else if (attribs[i].isSimpleType())
@@ -1036,7 +1003,7 @@
+ "[nSize];\n");
writer.write("\t\t\tsize_t i = nSize/2;\n");
- writer.write("\t\t\tfor (int ii=0; ii<i; ++ii)\n");
+ writer.write("\t\t\tfor (int ii = 0; ii < (int) i; ++ii)\n");
writer.write("\t\t\t{\n");
writer.write("\t\t\t\tpNew[ii] = pObj[ii];\n");
writer.write("\t\t\t\tpObj[ii].reset();\n");