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 su...@apache.org on 2004/02/17 13:47:44 UTC

cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info Type.java

susantha    2004/02/17 04:47:44

  Modified:    c/src/wsdl/org/apache/axis/wsdl/symbolTable ElementDecl.java
                        SchemaUtils.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws CUtils.java
                        ParamWriter.java WSDL2Ws.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c
                        AllParamWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal
                        AllParamWriter.java WrapWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
                        AllParamWriter.java ArrayParamWriter.java
                        ClientStubWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        AllParamWriter.java WrapWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info Type.java
  Log:
  Resolved the doc/lit style code generation issues found by Jean-Yves Baudy [jy.baudy@free.fr]
  Still the multiple output parameters not supported.
  
  Revision  Changes    Path
  1.3       +1 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/ElementDecl.java
  
  Index: ElementDecl.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/ElementDecl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ElementDecl.java	12 Jan 2004 10:51:32 -0000	1.2
  +++ ElementDecl.java	17 Feb 2004 12:47:44 -0000	1.3
  @@ -153,7 +153,7 @@
       /**
        * @param i
        */
  -    public void setMinOccrs(int i) {
  +    public void setMinOccurs(int i) {
           minOccrs = i;
       }
   
  
  
  
  1.3       +2 -2      ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
  
  Index: SchemaUtils.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SchemaUtils.java	12 Jan 2004 10:51:32 -0000	1.2
  +++ SchemaUtils.java	17 Feb 2004 12:47:44 -0000	1.3
  @@ -363,9 +363,9 @@
   			}
   			if(minOccurs == null){}
   			else if("unbounded".equals(minOccurs))
  -				elem.setMinOccrs(ElementInfo.UNBOUNDED);
  +				elem.setMinOccurs(ElementInfo.UNBOUNDED);
   			else{	
  -				elem.setMinOccrs(Integer.parseInt(minOccurs));
  +				elem.setMinOccurs(Integer.parseInt(minOccurs));
   			}
   
   			
  
  
  
  1.5       +4 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
  
  Index: CUtils.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CUtils.java	30 Jan 2004 13:26:15 -0000	1.4
  +++ CUtils.java	17 Feb 2004 12:47:44 -0000	1.5
  @@ -247,7 +247,10 @@
   		return arrayName;		
   	}
   	public static String getBasicArrayNameforType(String stype){
  -		return (String)type2BasicArrayName.get(stype);
  +		if (type2BasicArrayName.containsKey(stype))
  +			return (String)type2BasicArrayName.get(stype);
  +		else
  +		 	return "";
   	}
   	
   	/**
  
  
  
  1.6       +4 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
  
  Index: ParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ParamWriter.java	13 Feb 2004 07:00:28 -0000	1.5
  +++ ParamWriter.java	17 Feb 2004 12:47:44 -0000	1.6
  @@ -180,7 +180,10 @@
   
    	protected String getCorrectParmNameConsideringArraysAndComplexTypes(AttributeInfo attrib)throws WrapperFault{
   		if (attrib.isArray()){
  -			return attrib.getTypeName()+"_Array";
  +			if (attrib.isSimpleType())
  +				return CUtils.getBasicArrayNameforType(attrib.getTypeName());
  +			else
  +				return CUtils.getCmplxArrayNameforType(attrib.getSchemaName());
   		}
   		else if (!attrib.isSimpleType()){
   			return attrib.getTypeName()+" *";	
  
  
  
  1.15      +15 -16    ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
  
  Index: WSDL2Ws.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- WSDL2Ws.java	13 Feb 2004 07:00:29 -0000	1.14
  +++ WSDL2Ws.java	17 Feb 2004 12:47:44 -0000	1.15
  @@ -244,7 +244,7 @@
               //add each parameter to parameter list
               if ("document".equals(bindingEntry.getBindingStyle().getName())){
   				Part part = (Part) paramlist.next();
  -				if ("parameters".equals(part.getName())){
  +				/* if ("parameters".equals(part.getName())){ */ //to have "parameters" is not a must. Ref : WS-I Basic profile 1.0
   					element = symbolTable.getElement(part.getElementName());
   					qname = element.getRefType().getQName();
   					if (qname != null){
  @@ -252,7 +252,7 @@
   						type = this.typeMap.getType(qname);				
   						if(type == null)
   							 throw new WrapperFault("unregisterd type "+qname+" refered");
  -						if(type.getLanguageSpecificName().startsWith(">")){ //anonymous type - the message element
  +						/* if(type.getLanguageSpecificName().startsWith(">")){*/ //anyway skip the wrapping element type even if it is a named type.
   							//get inner attributes and elements and add them as parameters
   							ArrayList elementlist = new ArrayList();
   							Iterator names = type.getElementnames();
  @@ -267,17 +267,17 @@
   								pinfo.setElementName(type.getElementForElementName(elementname).getName());
   								minfo.addInputParameter(pinfo);		
   							}
  -						}
  +						/*}
   						else{
   							pinfo = new ParameterInfo(type,element.getQName().getLocalPart());
   							pinfo.setElementName(element.getQName());
   							minfo.addInputParameter(pinfo);
  -						}
  +						}*/
   					}
  -				}
  +				/*}
   				else{
   					throw new WrapperFault("A message name of document literal style WSDL is not \"parameters\"");
  -				}
  +				}*/
   	    	}
       	   	else{
   	    	  	while (paramlist.hasNext()) {
  @@ -290,7 +290,7 @@
               Iterator returnlist = op.getOutput().getMessage().getParts().values().iterator();
   			if ("document".equals(bindingEntry.getBindingStyle().getName())){
   				Part part = (Part) returnlist.next();
  -				if ("parameters".equals(part.getName())){
  +				/*if ("parameters".equals(part.getName())){*///to have "parameters" is not a must. Ref : WS-I Basic profile 1.0
   					element = symbolTable.getElement(part.getElementName());
   					qname = element.getRefType().getQName();
   					if (qname != null){
  @@ -298,7 +298,7 @@
   						type = this.typeMap.getType(qname);				
   						if(type == null)
   							 throw new WrapperFault("unregisterd type "+qname+" refered");
  -						if(type.getLanguageSpecificName().startsWith(">")){
  +						/*if(type.getLanguageSpecificName().startsWith(">")){*///anyway skip the wrapping element type even if it is a named type.
   							//get inner attributes and elements and add them as parameters 
   							ArrayList elementlist = new ArrayList();
   							Iterator names = type.getElementnames();
  @@ -313,18 +313,18 @@
   								pinfo.setElementName(type.getElementForElementName(elementname).getName());
   								minfo.addOutputParameter(pinfo);		
   							}							
  -						}
  +						/*}
   						else{
   							pinfo = new ParameterInfo(type,element.getQName().getLocalPart());
   							pinfo.setElementName(element.getQName());
   							minfo.addOutputParameter(pinfo);							
  -						}
  +						}*/
   						pinfo = new ParameterInfo(type,part.getName());
   						pinfo.setElementName(part.getElementName());					}
  -				}
  +				/*}
   				else{
   					throw new WrapperFault("A message name of document literal style WSDL is not \"parameters\"");
  -				}
  +				}*/
   			}
   			else{
   	            if (returnlist.hasNext()) {
  @@ -456,8 +456,7 @@
   			//type is a inbild type or a already created type
   			return typedata;  
   		}
  -		System.out.println(
  -			"############## the type found =" + type.getQName());
  +		System.out.println("############## the type found =" + type.getQName());
   		if (-1 != type.getQName().getLocalPart().indexOf('[')) {/* it seems that this is an array */
   			if (null == type.getRefType())throw new WrapperFault("Array type found without a Ref type");
   			QName qn = type.getRefType().getQName();
  @@ -466,7 +465,7 @@
   			QName newqn = new QName(type.getQName().getNamespaceURI(), qn.getLocalPart()+"_Array");
   			typedata = new Type(newqn, newqn.getLocalPart(), true, targetLanguage);
   		}else {
  -			typedata = new Type(type.getQName(), type.getName(), true, targetLanguage);
  +			typedata = new Type(type.getQName(), type.getQName().getLocalPart(), true, targetLanguage);
   		}
   		typeMap.addType(type.getQName(), typedata);
   			
  @@ -625,7 +624,7 @@
           System.out.println(data.getArgumentCount());
           if (data.getArgumentCount() != 1)
               System.out.println(
  -                "java WSDL2ws <wsdlfile> -<optionChar><value>\n"
  +                "java WSDL2Ws <wsdlfile> -<optionChar><value>\n"
                       + "-o target output folder - default is current folder\n"
                       + "-l target language(c|c++) - default is c++\n"
                       + "-s (client|server) - default is server\n");
  
  
  
  1.6       +4 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java
  
  Index: AllParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/AllParamWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AllParamWriter.java	28 Jan 2004 10:19:13 -0000	1.5
  +++ AllParamWriter.java	17 Feb 2004 12:47:44 -0000	1.6
  @@ -95,7 +95,11 @@
   						if (!writer.isSimpleTypeArray()) writer.writeSource();
   					}	
   					else{
  +						/* TODO check whether this type is referenced or not. Synthesize only if  reference
  +						 * But of cause that depends on the commandline option too  */
   						if (type.getLanguageSpecificName().startsWith(">")){
  +							/* TODO do some processing to this type before synthesizing to remove ">" charactors.
  +							 * And then it should also be synthesized if commandline option says to */
   							System.out.println("ignoring anonymous type "+ type.getLanguageSpecificName()+"\n");	
   						}
   						else{
  
  
  
  1.6       +4 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/AllParamWriter.java
  
  Index: AllParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/AllParamWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AllParamWriter.java	20 Jan 2004 14:05:18 -0000	1.5
  +++ AllParamWriter.java	17 Feb 2004 12:47:44 -0000	1.6
  @@ -94,7 +94,11 @@
   						(new ArrayParamWriter(wscontext,type)).writeSource();	
   					}	
   					else{
  +						/* TODO check whether this type is referenced or not. Synthesize only if  reference
  +						 * But of cause that depends on the commandline option too  */
   						if (type.getLanguageSpecificName().startsWith(">")){
  +							/* TODO do some processing to this type before synthesizing to remove ">" charactors.
  +							 * And then it should also be synthesized if commandline option says to */
   							System.out.println("ignoring anonymous type "+ type.getLanguageSpecificName()+"\n");	
   						}
   						else{
  
  
  
  1.10      +1 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/WrapWriter.java
  
  Index: WrapWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/WrapWriter.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- WrapWriter.java	13 Feb 2004 07:00:29 -0000	1.9
  +++ WrapWriter.java	17 Feb 2004 12:47:44 -0000	1.10
  @@ -319,7 +319,7 @@
   		}
   		writer.write("\tif (AXIS_SUCCESS != (nStatus = DZ._functions->GetStatus(DZ._object))) return nStatus;\n");				
   		if(returntype != null){
  -			String returnParamName = returntype.getParamName();
  +			String returnParamName = returntype.getElementName().getLocalPart();
   			/* Invoke the service when return type not void */
   			writer.write("\tret = "+methodName+"(");
   			if (0<paramsB.size()){
  
  
  
  1.4       +6 -1      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java
  
  Index: AllParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/AllParamWriter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AllParamWriter.java	15 Jan 2004 13:45:24 -0000	1.3
  +++ AllParamWriter.java	17 Feb 2004 12:47:44 -0000	1.4
  @@ -89,10 +89,15 @@
   			if(wscontext.getWrapInfo().getImplStyle().equals(WrapperConstants.IMPL_STYLE_STRUCT)){
   				if(type.isArray()){
   					System.out.println("Array writer called ......");
  -					(new ArrayParamWriter(wscontext,type)).writeSource();	
  +					ArrayParamWriter writer = (new ArrayParamWriter(wscontext,type));	
  +					if (!writer.isSimpleTypeArray()) writer.writeSource();
   				}	
   				else{
  +					/* TODO check whether this type is referenced or not. Synthesize only if  reference
  +					 * But of cause that depends on the command line option too  */
   					if (type.getLanguageSpecificName().startsWith(">")){
  +						/* TODO do some processing to this type before synthesizing to remove ">" charactors.
  +						 * And then it should also be synthesized if command line option says to */
   						System.out.println("ignoring anonymous type "+ type.getLanguageSpecificName()+"\n");	
   					}
   					else{
  
  
  
  1.8       +4 -0      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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ArrayParamWriter.java	15 Jan 2004 13:45:24 -0000	1.7
  +++ ArrayParamWriter.java	17 Feb 2004 12:47:44 -0000	1.8
  @@ -109,6 +109,10 @@
   			throw new WrapperFault(e);
   		}
   	}
  +	public boolean isSimpleTypeArray()throws WrapperFault{
  +		QName qname = WrapperUtils.getArrayType(type).getName(); 
  +		return CUtils.isSimpleType(qname);
  +	}
   	protected File getFilePath() throws WrapperFault {
   		String targetOutputLocation = this.wscontext.getWrapInfo().getTargetOutputLocation();
   		if(targetOutputLocation.endsWith("/"))
  
  
  
  1.23      +1 -1      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.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ClientStubWriter.java	13 Feb 2004 07:00:30 -0000	1.22
  +++ ClientStubWriter.java	17 Feb 2004 12:47:44 -0000	1.23
  @@ -335,7 +335,7 @@
   			writer.write("\treturn RetArray;\n");
   		}
   		else if(returntypeissimple){
  -			writer.write("\t\t\tRet = m_pCall->"+ CUtils.getParameterGetValueMethodName(outparamType, false)+"(\""+returntype.getElementName().getLocalPart()+"\", 0);\n\t\t}\n");
  +			writer.write("\t\t\tRet = m_pCall->"+ CUtils.getParameterGetValueMethodName(outparamType, false)+"(\""+returntype.getParamName()+"\", 0);\n\t\t}\n");
   			writer.write("\t}\n\tm_pCall->UnInitialize();\n");
   			writer.write("\treturn Ret;\n");
   		}
  
  
  
  1.4       +4 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/AllParamWriter.java
  
  Index: AllParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/AllParamWriter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AllParamWriter.java	15 Jan 2004 13:45:24 -0000	1.3
  +++ AllParamWriter.java	17 Feb 2004 12:47:44 -0000	1.4
  @@ -92,7 +92,11 @@
   					(new ArrayParamWriter(wscontext,type)).writeSource();	
   				}	
   				else{
  +					/* TODO check whether this type is referenced or not. Synthesize only if  reference
  +					 * But of cause that depends on the commandline option too  */
   					if (type.getLanguageSpecificName().startsWith(">")){
  +						/* TODO do some processing to this type before synthesizing to remove ">" charactors.
  +						 * And then it should also be synthesized if commandline option says to */
   						System.out.println("ignoring anonymous type "+ type.getLanguageSpecificName()+"\n");	
   					}
   					else{
  
  
  
  1.8       +6 -6      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
  
  Index: WrapWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- WrapWriter.java	13 Feb 2004 07:00:30 -0000	1.7
  +++ WrapWriter.java	17 Feb 2004 12:47:44 -0000	1.8
  @@ -288,8 +288,8 @@
   			}
   		}
   		writer.write("\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->GetStatus())) return nStatus;\n");
  -		if(returntype != null){				
  -			/* Invoke the service when return type not void */
  +		if(returntype != null){	/* Invoke the service when return type not void */
  +			String returnParamName = returntype.getElementName().getLocalPart();
   			writer.write("\t"+outparamType+((returntypeisarray || returntypeissimple)?" ":" *")+ "ret = "+"pWs->"+methodName+"(");
   			if (0<paramsB.size()){
   				for (int i = 0; i <  paramsB.size() - 1; i++) {
  @@ -300,23 +300,23 @@
   			writer.write(");\n");
   			/* set the result */
   			if (returntypeissimple){
  -				writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", (void*)&ret, "+CUtils.getXSDTypeForBasicType(outparamType)+");\n");
  +				writer.write("\treturn pIWSSZ->AddOutputParam(\""+returnParamName+"\", (void*)&ret, "+CUtils.getXSDTypeForBasicType(outparamType)+");\n");
   			}else if(returntypeisarray){
   				QName qname = WrapperUtils.getArrayType(retType).getName();
   				String containedType = null;
   				if (CUtils.isSimpleType(qname)){
   					containedType = CUtils.getclass4qname(qname);
  -					writer.write("\treturn pIWSSZ->AddOutputBasicArrayParam(\""+methodName+"Return\", (Axis_Array*)(&ret),"+CUtils.getXSDTypeForBasicType(containedType)+");\n");
  +					writer.write("\treturn pIWSSZ->AddOutputBasicArrayParam(\""+returnParamName+"\", (Axis_Array*)(&ret),"+CUtils.getXSDTypeForBasicType(containedType)+");\n");
   				}
   				else{
   					containedType = qname.getLocalPart();
  -					writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", (Axis_Array*)(&ret),"+ 
  +					writer.write("\treturn pIWSSZ->AddOutputParam(\""+returnParamName+"\", (Axis_Array*)(&ret),"+ 
   					"(void*) Axis_Serialize_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", Axis_TypeName_"+containedType+", Axis_URI_"+containedType+");\n");
   				}
   			}
   			else{
   				//complex type
  -				writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret, (void*)Axis_Serialize_"+outparamType+", (void*)Axis_Delete_"+outparamType+");\n");
  +				writer.write("\treturn pIWSSZ->AddOutputParam(\""+returnParamName+"\", ret, (void*)Axis_Serialize_"+outparamType+", (void*)Axis_Delete_"+outparamType+");\n");
   			}
   		}else{//method does not return anything
   			/* Invoke the service when return type is void */
  
  
  
  1.8       +17 -1     ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
  
  Index: Type.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Type.java	15 Jan 2004 13:45:24 -0000	1.7
  +++ Type.java	17 Feb 2004 12:47:44 -0000	1.8
  @@ -111,7 +111,7 @@
       private boolean canThisOccuredmoreThanOnceAllTheTime = false;
       //to handle <xsd:element name="three" type="typens:enum" maxOccurs="unbounded" />
       //types at the top level. But this is not allowed in the Schema spec. 
  -    
  +    private boolean isreferenced = false;
       
       private String language;
   
  @@ -342,4 +342,20 @@
           return str;
       }
   
  +	/**
  +	 * @return boolean
  +	 */
  +	public boolean isIsreferenced() {
  +		return isreferenced;
  +	}
  +
  +	/**
  +	 * Sets the isreferenced.
  +	 * @param isreferenced The isreferenced to set
  +	 */
  +	public void setIsreferenced(boolean isreferenced) {
  +		this.isreferenced = isreferenced;
  +		/* TODO also make the inner type of this be referenced*/
  +		
  +	}
   }