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 na...@apache.org on 2008/05/21 08:47:01 UTC
svn commit: r658567 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws:
CLArgParser.java WSDL2Ws.java
Author: nadiramra
Date: Tue May 20 23:47:00 2008
New Revision: 658567
URL: http://svn.apache.org/viewvc?rev=658567&view=rev
Log:
Simplify logic...re-enable unwrapped option
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java?rev=658567&r1=658566&r2=658567&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CLArgParser.java Tue May 20 23:47:00 2008
@@ -64,7 +64,8 @@
}
else if (option.equals("w"))
{
- if (!"wrapped".equalsIgnoreCase(optionValue))
+ if (!"wrapped".equalsIgnoreCase(optionValue)
+ && !"unwrapped".equalsIgnoreCase(optionValue))
optionsAreValid = false;
}
else if (!option.equals("h") && !option.equals("o")
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java?rev=658567&r1=658566&r2=658567&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java Tue May 20 23:47:00 2008
@@ -342,13 +342,11 @@
private void addDocumentStyleOutputMessageToMethodInfo(MethodInfo minfo, Part part)
throws WrapperFault
{
- Element element;
QName qname;
- ParameterInfo pinfo;
- Type type;
QName minfoqname;
- element = symbolTable.getElement(part.getElementName());
+ Element element = symbolTable.getElement(part.getElementName());
+
if (element == null)
{
// the part reference a type.
@@ -360,73 +358,58 @@
qname = element.getRefType().getQName();
minfoqname = element.getQName();
}
+
minfo.setOutputMessage(minfoqname);
- if (qname != null)
- {
- type = this.typeMap.getType(qname);
- if (type == null)
- throw new WrapperFault("Unregistered type " + qname + " referred");
+ if (qname == null)
+ return;
+
+ Type type = this.typeMap.getType(qname);
+ if (type == null)
+ throw new WrapperFault("Unregistered type " + qname + " referenced!");
- //get inner attributes and elements and add them as parameters
- if (wsdlWrappingStyle)
- addOutputElementsToMethodInfo(minfo, type);
- else
- {
- // for non-wrapped style wsdl's
- String elementName = (String) element.getQName().getLocalPart();
- pinfo = new ParameterInfo();
- pinfo.setType(type);
- pinfo.setParamName(elementName, typeMap);
- pinfo.setElementName(type.getName());
- if (type.getName().equals(CUtils.anyTypeQname))
+ // For wrapped style, inner attributes and elements are added as parameters.
+ // For unwrapped style, objects are used for the parameters (i.e. classes or structures).
+ if (wsdlWrappingStyle)
+ {
+ Iterator names = type.getElementnames();
+ while (names.hasNext())
+ {
+ String elementname = (String) names.next();
+ ElementInfo eleinfo = type.getElementForElementName(elementname);
+ Type innerType = eleinfo.getType();
+
+ ParameterInfo pinfo = new ParameterInfo();
+ pinfo.setType(innerType);
+ pinfo.setParamName(elementname, typeMap);
+
+ if (eleinfo.getMaxOccurs() > 1)
+ pinfo.setArray(true);
+
+ pinfo.setNillable(eleinfo.getNillable());
+
+ if (eleinfo.getMinOccurs() == 0)
+ pinfo.setOptional(true);
+ else
+ pinfo.setOptional(false);
+
+ pinfo.setElementName(type.getElementForElementName(elementname).getName());
+
+ if (innerType.getName().equals(CUtils.anyTypeQname))
pinfo.setAnyType(true);
+
minfo.addOutputParameter(pinfo);
}
}
- }
-
- /**
- * @param minfo
- * @param type
- */
- private void addOutputElementsToMethodInfo(MethodInfo minfo, Type type)
- {
- ParameterInfo pinfo;
- ElementInfo eleinfo;
- ArrayList elementlist = new ArrayList();
- Iterator names = type.getElementnames();
- while (names.hasNext())
- {
- elementlist.add(names.next());
- }
-
- Type innerType;
- for (int i = 0; i < elementlist.size(); i++)
- {
- String elementname = (String) elementlist.get(i);
- eleinfo = type.getElementForElementName(elementname);
- innerType = eleinfo.getType();
-
- pinfo = new ParameterInfo();
- pinfo.setType(innerType);
- pinfo.setParamName(elementname, typeMap);
-
- if (eleinfo.getMaxOccurs() > 1)
- pinfo.setArray(true);
-
- pinfo.setNillable(eleinfo.getNillable());
-
- if (eleinfo.getMinOccurs() == 0)
- pinfo.setOptional(true);
- else
- pinfo.setOptional(false);
-
- pinfo.setElementName(type.getElementForElementName(elementname).getName());
-
- if (innerType.getName().equals(CUtils.anyTypeQname))
+ else
+ {
+ String elementName = (String) element.getQName().getLocalPart();
+ ParameterInfo pinfo = new ParameterInfo();
+ pinfo.setType(type);
+ pinfo.setParamName(elementName, typeMap);
+ pinfo.setElementName(type.getName());
+ if (type.getName().equals(CUtils.anyTypeQname))
pinfo.setAnyType(true);
-
minfo.addOutputParameter(pinfo);
}
}
@@ -480,134 +463,104 @@
*/
private void addDocumentStyleInputMessageToMethodInfo(Operation op, MethodInfo minfo)
throws WrapperFault
- {
- Element element;
- QName qname;
- ParameterInfo pinfo;
- Type type;
- Iterator paramlist;
-
- paramlist = op.getInput().getMessage().getParts().values().iterator();
+ {
+ // If no input parameters, simply return.
+ Iterator paramlist = op.getInput().getMessage().getParts().values().iterator();
+ if(!paramlist.hasNext())
+ return;
- Part part = null;
+ Part part = (Part) paramlist.next();
- if( paramlist.hasNext())
- part = (Part) paramlist.next();
+ QName minfoqname;
+ QName qname;
+
+ Element element = symbolTable.getElement(part.getElementName());
- if( part != null)
+ if (element == null)
{
- QName minfoqname;
- element = symbolTable.getElement(part.getElementName());
-
- if (element == null)
- {
- // the part reference a type.
- qname = symbolTable.getType(part.getTypeName()).getQName();
- minfoqname = symbolTable.getType(part.getTypeName()).getQName();
- }
- else
- {
- qname = element.getRefType().getQName();
- minfoqname = element.getQName();
+ // the part reference a type.
+ qname = symbolTable.getType(part.getTypeName()).getQName();
+ minfoqname = symbolTable.getType(part.getTypeName()).getQName();
+ }
+ else
+ {
+ qname = element.getRefType().getQName();
+ minfoqname = element.getQName();
+ }
+
+ minfo.setInputMessage(minfoqname);
+
+ if (qname == null)
+ return;
+
+ Type type = this.typeMap.getType(qname);
+ if (type == null)
+ throw new WrapperFault("unregistered type " + qname + " referenced");
+
+ // For wrapped style, inner attributes and elements are added as parameters.
+ // For unwrapped style, objects are used for the parameters (i.e. classes or structures).
+ if (wsdlWrappingStyle)
+ {
+ // Add input elements to method info
+ Iterator elementNames = type.getElementnames();
+ while (elementNames.hasNext())
+ {
+ String elementname = (String) elementNames.next();
+ ElementInfo eleinfo = type.getElementForElementName(elementname);
+ Type innerType = eleinfo.getType();
+
+ ParameterInfo pinfo = new ParameterInfo();
+ pinfo.setType(innerType);
+ pinfo.setParamName(elementname, typeMap);
+
+ if (eleinfo.getMaxOccurs() > 1)
+ pinfo.setArray(true);
+
+ pinfo.setElementName(type.getElementForElementName(elementname).getName());
+
+ if (innerType.getName().equals(CUtils.anyTypeQname))
+ pinfo.setAnyType(true);
+
+ pinfo.setNillable(eleinfo.getNillable());
+
+ if (eleinfo.getMinOccurs() == 0)
+ pinfo.setOptional(true);
+ else
+ pinfo.setOptional(false);
+
+ minfo.addInputParameter(pinfo);
}
- minfo.setInputMessage(minfoqname);
-
- if (qname != null)
+ // add input attributes to method info
+ Iterator attributes = type.getAttributes();
+ if (attributes != null)
{
- type = this.typeMap.getType(qname);
- if (type == null)
- throw new WrapperFault("unregistered type " + qname + " referred");
-
- if (wsdlWrappingStyle)
+ while (attributes.hasNext())
{
- //get inner attributes and elements and add them as parameters
- addInputElementsToMethodInfo(minfo, type);
- addInputAttributesToMethodInfo(minfo, type);
- }
- else
- {
- // for non-wrapped style wsdl's
- String elementName = (String) element.getQName().getLocalPart();
-
- pinfo = new ParameterInfo();
+ CContainedAttribute attr = (CContainedAttribute)attributes.next();
+
+ ParameterInfo pinfo = new ParameterInfo();
+
+ pinfo.setType(attr.getType());
+ pinfo.setParamName(attr.getName(), typeMap);
+ pinfo.setElementName(attr.getType().getName());
+ pinfo.setAttribute(true);
- pinfo.setType(type);
- pinfo.setParamName(elementName, typeMap);
- pinfo.setElementName(type.getName());
- if (type.getName().equals(CUtils.anyTypeQname))
- pinfo.setAnyType(true);
-
minfo.addInputParameter(pinfo);
}
}
}
- }
-
- /**
- * @param minfo
- * @param type
- */
- private void addInputAttributesToMethodInfo(MethodInfo minfo, Type type)
- {
- Iterator attributes = type.getAttributes();
- if (attributes == null)
- return;
-
- while (attributes.hasNext())
- {
- CContainedAttribute attr = (CContainedAttribute)attributes.next();
-
- ParameterInfo pinfo = new ParameterInfo();
-
- pinfo.setType(attr.getType());
- pinfo.setParamName(attr.getName(), typeMap);
- pinfo.setElementName(attr.getType().getName());
- pinfo.setAttribute(true);
-
- minfo.addInputParameter(pinfo);
- }
- }
-
- /**
- * @param minfo
- * @param type
- */
- private void addInputElementsToMethodInfo(MethodInfo minfo, Type type)
- {
- ParameterInfo pinfo;
- ElementInfo eleinfo;
- Iterator elementNames = type.getElementnames();
- ArrayList elementlist = new ArrayList();
- while (elementNames.hasNext())
- {
- elementlist.add(elementNames.next());
- }
-
- for (int i = 0; i < elementlist.size(); i++)
- {
- String elementname = (String) elementlist.get(i);
- eleinfo = type.getElementForElementName(elementname);
- Type innerType = eleinfo.getType();
-
- pinfo = new ParameterInfo();
- pinfo.setType(innerType);
- pinfo.setParamName(elementname, typeMap);
+ else
+ {
+ String elementName = (String) element.getQName().getLocalPart();
- if (eleinfo.getMaxOccurs() > 1)
- pinfo.setArray(true);
-
- pinfo.setElementName(type.getElementForElementName(elementname).getName());
+ ParameterInfo pinfo = new ParameterInfo();
- if (innerType.getName().equals(CUtils.anyTypeQname))
+ pinfo.setType(type);
+ pinfo.setParamName(elementName, typeMap);
+ pinfo.setElementName(type.getName());
+ if (type.getName().equals(CUtils.anyTypeQname))
pinfo.setAnyType(true);
-
- pinfo.setNillable(eleinfo.getNillable());
-
- if (eleinfo.getMinOccurs() == 0)
- pinfo.setOptional(true);
- else
- pinfo.setOptional(false);
minfo.addInputParameter(pinfo);
}
@@ -651,16 +604,13 @@
targetEngine = "server";
if (targetoutputLocation == null)
targetoutputLocation = "./";
- if (wsdlWrapStyle == null)
- wsdlWrapStyle = "wrapped";
-
- this.language = targetLanguage;
-
- if (wsdlWrapStyle.equalsIgnoreCase("wrapped"))
+ if (wsdlWrapStyle == null || wsdlWrapStyle.equalsIgnoreCase("wrapped"))
this.wsdlWrappingStyle = true;
else
this.wsdlWrappingStyle = false;
+ this.language = targetLanguage;
+
preprocess();
CUtils.setLanguage(language);