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:33:38 UTC
cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal ParmHeaderFileWriter.java
baudyjy 2004/04/05 04:33:38
Modified: c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
ParmHeaderFileWriter.java
Log:
Fix complex schemas compilation (include cycle).
Revision Changes Path
1.10 +15 -0 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java
Index: ParmHeaderFileWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ParmHeaderFileWriter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ParmHeaderFileWriter.java 27 Mar 2004 21:04:26 -0000 1.9
+++ ParmHeaderFileWriter.java 5 Apr 2004 11:33:38 -0000 1.10
@@ -237,6 +237,21 @@
writer.write("/*Local name and the URI for the type*/\n");
writer.write("static const char* Axis_URI_"+classname+" = \""+type.getName().getNamespaceURI()+"\";\n");
writer.write("static const char* Axis_TypeName_"+classname+" = \""+type.getName().getLocalPart()+"\";\n\n");
+
+ // Define class to avoid compilation issues (cycle in includes).
+ // This is a must for complex wsdl files.
+ typeSet = new HashSet();
+ for (int i=0;i<attribs.length; i++)
+ {
+ if (!attribs[i].isArray() && !attribs[i].isSimpleType())
+ typeSet.add(attribs[i].getTypeName());
+ }
+ itr = typeSet.iterator();
+ while(itr.hasNext())
+ {
+ writer.write("class "+itr.next().toString()+";\n");
+ }
+
}catch(IOException e){
throw new WrapperFault(e);
}