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 sa...@apache.org on 2003/12/16 11:37:16 UTC

cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp WrapWriter.java ParamWriter.java ClientStubWriter.java BeanParamWriter.java ArrayParamWriter.java

sanjaya     2003/12/16 02:37:16

  Modified:    c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp Tag:
                        CWrapperSupport WrapWriter.java ParamWriter.java
                        ClientStubWriter.java BeanParamWriter.java
                        ArrayParamWriter.java
  Log:
  modified to reflect the structural changes
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.10.4.4  +2 -2      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java
  
  Index: WrapWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java,v
  retrieving revision 1.10.4.3
  retrieving revision 1.10.4.4
  diff -u -r1.10.4.3 -r1.10.4.4
  --- WrapWriter.java	21 Nov 2003 12:48:12 -0000	1.10.4.3
  +++ WrapWriter.java	16 Dec 2003 10:37:16 -0000	1.10.4.4
  @@ -246,7 +246,7 @@
   				//for simple types	
   				writer.write("\t"+paraTypeName+" v"+i+" = pIWSDZ->"+CPPUtils.getParameterGetValueMethodName(paraTypeName)+";\n");
   			}else if((type = this.wscontext.getTypemap().getType(((ParameterInfo)paramsB.get(i)).getSchemaName())) != null && type.isArray()){
  -				QName qname = type.getTypNameForAttribName("item");
  +				QName qname = WrapperUtils.getArrayType(type).getName();
   				String containedType = null;
   				if (CPPUtils.isSimpleType(qname)){
   					containedType = CPPUtils.getclass4qname(qname);
  @@ -284,7 +284,7 @@
   			if (returntypeissimple){
   				writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret, "+CPPUtils.getXSDTypeForBasicType(outparamType)+");\n");
   			}else if(returntypeisarray){
  -				QName qname = retType.getTypNameForAttribName("item");
  +				QName qname = WrapperUtils.getArrayType(retType).getName();
   				String containedType = null;
   				if (CPPUtils.isSimpleType(qname)){
   					containedType = CPPUtils.getclass4qname(qname);
  
  
  
  1.3.4.2   +58 -23    ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamWriter.java
  
  Index: ParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamWriter.java,v
  retrieving revision 1.3.4.1
  retrieving revision 1.3.4.2
  diff -u -r1.3.4.1 -r1.3.4.2
  --- ParamWriter.java	14 Nov 2003 12:04:23 -0000	1.3.4.1
  +++ ParamWriter.java	16 Dec 2003 10:37:16 -0000	1.3.4.2
  @@ -109,35 +109,70 @@
       }
      
    	/* genarate the arrtibs array */
  -    public String[][] getAttribList(String Qualifiedname) throws WrapperFault {
  -        String[][] attribs;
  -        ArrayList feilds = new ArrayList();
  +	public String[][] getAttribList(String Qualifiedname) throws WrapperFault {
  +		String[][] attribs;
  +		ArrayList attribfeilds = new ArrayList();
  +		ArrayList elementfeilds = new ArrayList();
   
  -        Enumeration names = type.getAttribNames();
  -        while (names.hasMoreElements()){
  -            feilds.add(names.nextElement());
  -
  -        }
  -        //get all the fields
  +		Enumeration names = type.getAttributeNames();
  +		while (names.hasMoreElements()){
  +			attribfeilds.add(names.nextElement());
  +		}
  +        
  +		names = type.getElementnames();
  +				while (names.hasMoreElements()){
  +					elementfeilds.add(names.nextElement());
  +		}
  +        
  +        
  +		//get all the fields
     
  -        attribs = new String[feilds.size()][];
  -        for (int i = 0; i < feilds.size(); i++) {
  -            attribs[i] = new String[4];
  -            attribs[i][0] = ((String) feilds.get(i));
  +		attribs = new String[attribfeilds.size()+elementfeilds.size()][];
  +		for (int i = 0; i < attribfeilds.size(); i++) {
  +			//[variablename,typename,typeQNameURI,typeQNamelocalpart,attributeTypeURI,attributeTypeLocalpart]
  +			attribs[i] = new String[6];
  +			attribs[i][0] = ((String) attribfeilds.get(i));
  +   
  +			Type attribType = type.getTypForAttribName(attribs[i][0]);
  +            
  +			if(CPPUtils.isSimpleType(attribType.getName()))
  +				attribs[i][1] = CPPUtils.getclass4qname(attribType.getName());
  +			else
  +				attribs[i][1] = attribType.getLanguageSpecificName();
  +
  +			attribs[i][2] = attribType.getName().getNamespaceURI();
  +			attribs[i][3] = attribType.getName().getLocalPart();
  +
  +			attribs[i][4] = null;
  +			attribs[i][5] = null;
  +		}
  +        
  +		for (int i = attribfeilds.size(); i < elementfeilds.size()+attribfeilds.size(); i++) {
  +			attribs[i] = new String[6];
  +			attribs[i][0] = ((String) elementfeilds.get(i));
      
  -            QName name = type.getTypNameForAttribName(attribs[i][0]);
  +			Type elementType = type.getElementForElementName(attribs[i][0]).getType();
               
  -            if(CPPUtils.isSimpleType(name))
  -                attribs[i][1] = CPPUtils.getclass4qname(name);
  -            else
  -           		attribs[i][1] = this.wscontext.getTypemap().getType(name).getLanguageSpecificName();
  +			if(CPPUtils.isSimpleType(elementType.getName()))
  +				attribs[i][1] = CPPUtils.getclass4qname(elementType.getName());
  +			else
  +				attribs[i][1] = elementType.getLanguageSpecificName();
   
  -		   attribs[i][2] = name.getNamespaceURI();
  -		   attribs[i][3] = name.getLocalPart();
  +		   attribs[i][2] = elementType.getName().getNamespaceURI();
  +		   attribs[i][3] = elementType.getName().getLocalPart();
  +		   if(elementType.isArray()){
  +				Type arrayType = WrapperUtils.getArrayType(elementType);
  +				attribs[i][4] = arrayType.getName().getNamespaceURI();
  +				attribs[i][5] = arrayType.getName().getLocalPart();
  +		   }else{
  +				attribs[i][4] = null;
  +				attribs[i][5] = null;
  +		   }
  +		}
   
  -        }
  -        return attribs;
  -    }
  +        
  +		return attribs;
  +	}
       
    	protected String getCorrectParmNameConsideringArraysAndComplexTypes(QName name,String classname)throws WrapperFault{
   		//System.out.println(name);
  
  
  
  1.15.4.3  +2 -2      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
  
  Index: ClientStubWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java,v
  retrieving revision 1.15.4.2
  retrieving revision 1.15.4.3
  diff -u -r1.15.4.2 -r1.15.4.3
  --- ClientStubWriter.java	21 Nov 2003 12:48:12 -0000	1.15.4.2
  +++ ClientStubWriter.java	16 Dec 2003 10:37:16 -0000	1.15.4.3
  @@ -277,7 +277,7 @@
   			writer.write("\tm_pCall->AddParameter(");			
   			if(typeisarray){
   				//arrays
  -				QName qname = type.getTypNameForAttribName("item");
  +				QName qname = WrapperUtils.getArrayType(type).getName();
   				String containedType = null;
   				if (CPPUtils.isSimpleType(qname)){
   					containedType = CPPUtils.getclass4qname(qname);
  @@ -303,7 +303,7 @@
   			writer.write("\tm_pCall->UnInitialize();\n");
   		}
   		else if (returntypeisarray){
  -			QName qname = retType.getTypNameForAttribName("item");
  +			QName qname = WrapperUtils.getArrayType(retType).getName();
   			String containedType = null;
   			if (CPPUtils.isSimpleType(qname)){
   				containedType = CPPUtils.getclass4qname(qname);
  
  
  
  1.9.4.4   +22 -18    ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
  
  Index: BeanParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java,v
  retrieving revision 1.9.4.3
  retrieving revision 1.9.4.4
  diff -u -r1.9.4.3 -r1.9.4.4
  --- BeanParamWriter.java	21 Nov 2003 12:48:12 -0000	1.9.4.3
  +++ BeanParamWriter.java	16 Dec 2003 10:37:16 -0000	1.9.4.4
  @@ -67,6 +67,7 @@
   import javax.xml.namespace.QName;
   
   import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
  +import org.apache.axis.wsdl.wsdl2ws.WrapperUtils;
   import org.apache.axis.wsdl.wsdl2ws.info.Type;
   import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
   
  @@ -88,9 +89,10 @@
   		String typeName;
   		for(int i = 0; i< attribs.length;i++){
   			if(!CPPUtils.isSimpleType(attribs[i][1])){
  -				Type memtype = wscontext.getTypemap().getType(type.getTypNameForAttribName(attribs[i][0]));
  -				if (memtype.isArray()){
  -					QName qname = memtype.getTypNameForAttribName("item");
  +				//to understand what happens here please refer to where the 
  +				//attribs[][] is created. (ParamWriter) 		
  +				if (attribs[i][5] != null){
  +					QName qname = new QName(attribs[i][4],attribs[i][5]);
   					if (CPPUtils.isSimpleType(qname)) continue; //no wrapper methods for basic types
   					typeName = qname.getLocalPart();
   				}else{
  @@ -124,7 +126,7 @@
   		writer.write(" */\n");
   		writer.write("int Axis_GetSize_"+classname+"()\n{\n\treturn sizeof("+classname+");\n}\n");
   	}
  -	private void writeSerializeGlobalMethod()throws IOException{
  +	private void writeSerializeGlobalMethod()throws IOException,WrapperFault{
   		Type t;
   		writer.write("/*\n");
   		writer.write(" * This static method serialize a "+classname+" type of object\n");
  @@ -153,7 +155,7 @@
   				writer.write("\tpSZ->Serialize(pSZ->SerializeBasicType(\""+attribs[i][0]+"\", param->"+attribs[i][0]+", "+ CPPUtils.getXSDTypeForBasicType(attribs[i][1])+"), NULL);\n");
   			}else if((t = wscontext.getTypemap().getType(new QName(attribs[i][2],attribs[i][3])))!= null && t.isArray()){
   				//if Array
  -				QName qname = t.getTypNameForAttribName("item");
  +				QName qname = WrapperUtils.getArrayType(t).getName();
   				String arrayType = null;
   				if (CPPUtils.isSimpleType(qname)){
   					arrayType = CPPUtils.getclass4qname(qname);
  @@ -175,7 +177,7 @@
   		writer.write("}\n\n");
   	
   	}
  -	private void writeDeSerializeGlobalMethod()throws IOException{	
  +	private void writeDeSerializeGlobalMethod()throws IOException,WrapperFault{	
   		Type t;
   		writer.write("/*\n");
   		writer.write(" * This static method deserialize a "+classname+" type of object\n");
  @@ -193,7 +195,7 @@
   				writer.write("\tparam->"+attribs[i][0]+" = pIWSDZ->"+CPPUtils.getParameterGetValueMethodName(attribs[i][1])+";\n");
   			}else if((t = wscontext.getTypemap().getType(new QName(attribs[i][2],attribs[i][3])))!= null && t.isArray()){
   				//if Array
  -				QName qname = t.getTypNameForAttribName("item");
  +				QName qname = WrapperUtils.getArrayType(t).getName();
   				String arrayType = null;
   				if (CPPUtils.isSimpleType(qname)){
   					arrayType = CPPUtils.getclass4qname(qname);
  @@ -247,9 +249,10 @@
   			writer.write("\t\t{\n");
   			for(int i = 0; i< attribs.length;i++){
   				if(!CPPUtils.isSimpleType(attribs[i][1])){ //this can be either an array or complex type
  -					Type memtype = wscontext.getTypemap().getType(type.getTypNameForAttribName(attribs[i][0]));
  -					if (memtype.isArray()){
  -						QName qname = memtype.getTypNameForAttribName("item");
  +					//to understand what happens here please refer to where the 
  +					//attribs[][] is created. (ParamWriter) 		
  +					if (attribs[i][5] != null){
  +						QName qname = new QName(attribs[i][4],attribs[i][5]);
   						String containedType = null;
   						if (CPPUtils.isSimpleType(qname)){
   							containedType = CPPUtils.getclass4qname(qname);
  @@ -274,14 +277,15 @@
   		writer.write("\t\t/*delete any pointer members or array members of this struct here*/\n");
   		for(int i = 1; i< attribs.length;i++){
   			if(!CPPUtils.isSimpleType(attribs[i][1])){
  -				Type memtype = wscontext.getTypemap().getType(type.getTypNameForAttribName(attribs[i][0]));
  -				if (memtype.isArray()){
  -					QName qname = memtype.getTypNameForAttribName("item");
  -					String containedType = null;
  -					if (CPPUtils.isSimpleType(qname)){
  -						containedType = CPPUtils.getclass4qname(qname);
  -						writer.write("\t\tdelete [] (("+containedType+"*)param->"+attribs[i][0]+".m_Array);\n");
  -					}
  +				//to understand what happens here please refer to where the 
  +					//attribs[][] is created. (ParamWriter) 		
  +					if (attribs[i][5] != null){
  +						QName qname = new QName(attribs[i][4],attribs[i][5]);
  +						String containedType = null;
  +						if (CPPUtils.isSimpleType(qname)){
  +							containedType = CPPUtils.getclass4qname(qname);
  +							writer.write("\t\tdelete [] (("+containedType+"*)param->"+attribs[i][0]+".m_Array);\n");
  +						}
   					else{
   						containedType = qname.getLocalPart();
   						writer.write("\t\tAxis_Delete_"+containedType+"(param->"+attribs[i][0]+".m_Array, true, param->"+attribs[i][0]+".m_Size);\n");
  
  
  
  1.5.4.2   +3 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java
  
  Index: ArrayParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java,v
  retrieving revision 1.5.4.1
  retrieving revision 1.5.4.2
  diff -u -r1.5.4.1 -r1.5.4.2
  --- ArrayParamWriter.java	14 Nov 2003 12:04:23 -0000	1.5.4.1
  +++ ArrayParamWriter.java	16 Dec 2003 10:37:16 -0000	1.5.4.2
  @@ -69,6 +69,7 @@
   import javax.xml.namespace.QName;
   
   import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
  +import org.apache.axis.wsdl.wsdl2ws.WrapperUtils;
   import org.apache.axis.wsdl.wsdl2ws.info.Type;
   import org.apache.axis.wsdl.wsdl2ws.info.WebServiceContext;
   
  @@ -88,7 +89,8 @@
   				throw new WrapperFault("Array type "+classname+" contain unexpected no of types");
   			}
   			//include header file for the contained type
  -			QName qname = type.getTypNameForAttribName("item");
  +			QName qname = WrapperUtils.getArrayType(type).getName(); 
  +			
   			if (!CPPUtils.isSimpleType(qname)){
   				writer.write("#include \""+attribs[0][1]+".h\"\n\n");
   			}