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 ba...@apache.org on 2004/04/05 13:53:56 UTC
cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c BeanParamWriter.java
baudyjy 2004/04/05 04:53:56
Modified: c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c
BeanParamWriter.java
Log:
Fix complex schemas compilation (include cycle).
Revision Changes Path
1.13 +22 -4 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- BeanParamWriter.java 2 Apr 2004 04:12:48 -0000 1.12
+++ BeanParamWriter.java 5 Apr 2004 11:53:56 -0000 1.13
@@ -125,6 +125,7 @@
if (attribs.length == 0) {
//nothing to print if this is simple type we have inbuild types
System.out.println("possible error calss with no attributes....................");
+ writer.write("\t}\n\n");
return;
}
writer.write("\tconst AxisChar* sPrefix;\n");
@@ -144,10 +145,13 @@
writer.write("\tpSZ->_functions->SerializeBasicArray(pSZ->_object, (Axis_Array*)(¶m->"+attribs[i].getParamName()+"),"+CUtils.getXSDTypeForBasicType(attribs[i].getTypeName())+", \""+attribs[i].getParamName()+"\");\n");
}
else{
+ String elm = attribs[i].getParamName();
+ if ( attribs[i].isReference() )
+ elm = attribs[i].getTypeName();
arrayType = attribs[i].getTypeName();
writer.write("\tpSZ->_functions->SerializeCmplxArray(pSZ->_object, (Axis_Array*)(¶m->"+attribs[i].getParamName()+"),\n");
writer.write("\t\t(void*) Axis_Serialize_"+arrayType+", (void*) Axis_Delete_"+arrayType+", (void*) Axis_GetSize_"+arrayType+",\n");
- writer.write("\t\tAxis_TypeName_"+arrayType+", Axis_URI_"+arrayType+", \""+attribs[i].getParamName()+"\");\n");
+ writer.write("\t\t\""+elm+"\", Axis_TypeName_"+arrayType+");\n");
}
}
else if(attribs[i].isSimpleType()){
@@ -182,6 +186,7 @@
writer.write("int Axis_DeSerialize_"+classname+"("+classname+"* param, IWrapperSoapDeSerializer *pDZ)\n{\n");
if (attribs.length == 0) {
System.out.println("possible error calss with no attributes....................");
+ writer.write("\t}\n\n");
return;
}
boolean aretherearrayattribs = false;
@@ -233,13 +238,26 @@
private void writeCreateGlobalMethod()throws IOException{
writer.write("void* Axis_Create_"+classname+"("+classname+"* pObj, bool bArray, int nSize)\n{\n");
+ writer.write("\t"+classname+"* pTemp;\n");
writer.write("\tif (bArray && (nSize > 0))\n\t{\n");
writer.write("\t\tpObj = malloc(sizeof("+classname+")*nSize);\n");
- writer.write("\t\tmemset(pObj, 0, sizeof("+classname+")*nSize);\n");
+ writer.write("\t\t\tpTemp = pObj;\n");
+ writer.write("\t\t\tpTemp += nSize/2;\n");
+ writer.write("\t\t\tmemset(pTemp, 0, sizeof("+classname+")*nSize/2);\n");
writer.write("\t}\n\telse\n\t{\n");
writer.write("\t\tpObj = malloc(sizeof("+classname+"));\n");
- writer.write("\t\tmemset(pObj, 0, sizeof("+classname+"));\n\t}\n");
- writer.write("\treturn pObj;\n}\n");
+ writer.write("\t\tmemset(pObj, 0, sizeof("+classname+"));\n\n");
+ writer.write("\t\tpTemp = pObj;\n");
+ for(int i = 0; i< attribs.length;i++){
+ if (attribs[i].isArray()){
+ writer.write("\t\tpTemp->"+attribs[i].getParamName()+".m_Array = 0;\n");
+ writer.write("\t\tpTemp->"+attribs[i].getParamName()+".m_Size = 0;\n");
+ }
+ else if (!attribs[i].isSimpleType()){
+ writer.write("\t\tpTemp->"+attribs[i].getParamName()+"=0;\n");
+ }
+ }
+ writer.write("\t}\n\treturn pObj;\n}\n");
}
private void writeDeleteGlobalMethod()throws IOException{