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