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);
   	  }