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*/
+
+ }
}