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/09/09 23:39:27 UTC

svn commit: r693628 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws: CUtils.java ParamWriter.java cpp/ParmHeaderFileWriter.java info/ParameterInfo.java info/Type.java info/WSDLInfo.java

Author: nadiramra
Date: Tue Sep  9 14:39:27 2008
New Revision: 693628

URL: http://svn.apache.org/viewvc?rev=693628&view=rev
Log:
Changes in preparation for xsd:anyType support.

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java Tue Sep  9 14:39:27 2008
@@ -50,7 +50,8 @@
 {
     public static final String WRAPPER_NAME_APPENDER = "Wrapper";
     public static final String CLASS_LOADER_APPENDER = "Service";
-    public static final QName anyTypeQname = new QName("http://ws.apache.org/axisc/types","AnyType");
+    public static final QName xsdAnyElementQName = new QName("http://ws.apache.org/axisc/types","AnyType");
+    public static final QName xsdAnyTypeQName = new QName(WrapperConstants.SCHEMA_NAMESPACE,"anyType");
 
     // File suffix for C++ Class files
     private static final String CPP_CLASS_SUFFIX = ".cpp";
@@ -117,7 +118,9 @@
     
     static{    
         String[] primitiveTypes = {
+            // ====================
             // C++ primitive types
+            // ====================
             "xsd__duration",        "xsd__dateTime",            "xsd__time",                    
             "xsd__date",            "xsd__gYearMonth",          "xsd__gYear",                    
             "xsd__gMonthDay",       "xsd__gDay",                "xsd__gMonth",                
@@ -133,7 +136,10 @@
             "xsd__unsignedInt",     "xsd__unsignedShort",       "xsd__unsignedByte",            
             "xsd__positiveInteger", "xsd__double",              "xsd__anyURI",    
             "xsd__QName",           "xsd__NOTATION",            
+            
+            // ====================
             // C primitive types
+            // ====================
             "xsdc__duration",       "xsdc__dateTime",           "xsdc__time",               
             "xsdc__date",           "xsdc__gYearMonth",         "xsdc__gYear",                  
             "xsdc__gMonthDay",      "xsdc__gDay",               "xsdc__gMonth",                 
@@ -795,14 +801,25 @@
     }
   
     /**
-     * Method to determine if QName represents an AnyType.
+     * Method to determine if QName represents an xsd:any element.
+     * 
+     * @param name
+     * @return
+     */
+    public static boolean isAnyElement(QName name)
+    {
+            return name.equals(xsdAnyElementQName);
+    }
+  
+    /**
+     * Method to determine if QName represents an xsd:anyType.
      * 
      * @param name
      * @return
      */
     public static boolean isAnyType(QName name)
     {
-            return name.equals(anyTypeQname);
+            return name.equals(xsdAnyTypeQName);
     }
     
     /**
@@ -1190,7 +1207,7 @@
         WebServiceContext wscontext)
         throws WrapperFault
     {
-        if (param.getType().getName().equals(CUtils.anyTypeQname))
+        if (CUtils.isAnyElement(param.getType().getName()))
             return "AnyType*";
         
         Type type = wscontext.getTypemap().getType(param.getSchemaName());

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java Tue Sep  9 14:39:27 2008
@@ -151,8 +151,7 @@
             this.attribs[i].setParamName((String) elementfields.get(i - attributeParamCount), wscontext.getTypemap());
             CElementDecl elem = type.getElementForElementName(this.attribs[i].getParamName());
             Type elementType = elem.getType();
-            if (CUtils.isAnyType(elementType.getName()))
-                this.attribs[i].setAnyType(true);
+            this.attribs[i].setAnyType(elementType.isAnyType());
 
             if (CUtils.isSimpleType(elementType.getName()))
                 this.attribs[i].setTypeName(CUtils.getSimpleType(elementType.getName()));

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java Tue Sep  9 14:39:27 2008
@@ -473,7 +473,7 @@
     {
         try
         {
-            if (type.isSimpleType() || type.isArray() || type.getName().equals(CUtils.anyTypeQname)
+            if (type.isSimpleType() || type.isArray() || type.isAnyType()
                     || (type.isAnonymous() && !type.isExternalized()))
                 return;
             

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java Tue Sep  9 14:39:27 2008
@@ -259,11 +259,6 @@
     {
         return methodName;
     }
-
-    public void setMethodName(String methodName)
-    {
-        this.methodName = methodName;
-    }
     
     /**
      * @return String

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java Tue Sep  9 14:39:27 2008
@@ -111,6 +111,25 @@
     // is type the input type for unwrapped doc/lit operation?
     private boolean isUnwrappedInputType  = false;
     
+    // is any type?
+    private boolean c_isAnyType = false;
+
+
+    /**
+     * Constructor.
+     * This is solely for the creating of types associated with xsd:any elements!
+     */
+    public Type()
+    {
+        this(CUtils.xsdAnyElementQName, CUtils.xsdAnyElementQName.getLocalPart());
+    }
+    
+    /**
+     * Constructor.
+     * 
+     * @param name
+     * @param languageSpecificName
+     */
     public Type(QName name, String languageSpecificName)
     {
         this.languageSpecificName = languageSpecificName;
@@ -136,6 +155,9 @@
             isAnonymous = true;
             externalize = false;
         }
+        
+        // See if this type represents an xsd:any element or an xsd:anyType type.
+        c_isAnyType = CUtils.isAnyType(name) || CUtils.isAnyElement(name);
 
         if (name.getNamespaceURI().equals(WrapperConstants.APACHE_XMLSOAP_NAMESPACE) && 
             (name.getLocalPart().equals("DataHandler") ||
@@ -514,4 +536,12 @@
     {
         return isUnwrappedInputType;
     }
+
+    /**
+     * @return the c_isAnyType
+     */
+    public boolean isAnyType()
+    {
+        return c_isAnyType;
+    }
 }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java?rev=693628&r1=693627&r2=693628&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java Tue Sep  9 14:39:27 2008
@@ -787,7 +787,7 @@
                             
                             if (elem.getAnyElement())
                             {
-                                newSecondaryType =  new Type(CUtils.anyTypeQname, CUtils.anyTypeQname.getLocalPart());
+                                newSecondaryType =  new Type();
                             }
                             else
                             {
@@ -1274,8 +1274,7 @@
                     pinfo.setType(type);
                     pinfo.setParamName(elementName, c_typeMap);
                     pinfo.setElementName(element.getQName());
-                    if (type.getName().equals(CUtils.anyTypeQname))
-                        pinfo.setAnyType(true);
+                    pinfo.setAnyType(type.isAnyType());
                     minfo.addOutputParameter(pinfo);                    
                     minfo.setConsumeBodyOnMessageValidation(false);
                 }
@@ -1291,21 +1290,11 @@
                     ParameterInfo pinfo = new ParameterInfo();
                     pinfo.setType(innerType);
                     pinfo.setParamName(elementname, c_typeMap);
-                    
-                    if (eleinfo.getMaxOccurs() > 1)
-                        pinfo.setArray(true);
-                    
+                    pinfo.setArray(eleinfo.getMaxOccurs() > 1);
                     pinfo.setNillable(eleinfo.isNillable());
-                    
-                    if (eleinfo.getMinOccurs() == 0)
-                        pinfo.setOptional(true);
-                    else
-                        pinfo.setOptional(false);
-    
+                    pinfo.setOptional(eleinfo.getMinOccurs() == 0);
                     pinfo.setElementName(type.getElementForElementName(elementname).getName());
-                    
-                    if (innerType.getName().equals(CUtils.anyTypeQname))
-                        pinfo.setAnyType(true);
+                    pinfo.setAnyType(innerType.isAnyType());
     
                     minfo.addOutputParameter(pinfo);
                 }
@@ -1314,6 +1303,7 @@
         else
         { 
             String elementName = (String) element.getQName().getLocalPart();
+            
             ParameterInfo pinfo = new ParameterInfo();
             pinfo.setType(type);
             type.setIsUnwrappedOutputType(true);
@@ -1324,8 +1314,7 @@
             else
                 pinfo.setElementName(type.getName());
             
-            if (type.getName().equals(CUtils.anyTypeQname))
-                pinfo.setAnyType(true);
+            pinfo.setAnyType(type.isAnyType());
             
             // Let us be nice and uppercase the first character in type name, 
             // in addition to resolving method name/type conflicts.
@@ -1433,22 +1422,12 @@
                 
                 ParameterInfo pinfo = new ParameterInfo();
                 pinfo.setType(innerType);
-                pinfo.setParamName(elementname, c_typeMap);            
-                
-                if (eleinfo.getMaxOccurs() > 1)
-                    pinfo.setArray(true);
-
+                pinfo.setParamName(elementname, c_typeMap);     
+                pinfo.setArray(eleinfo.getMaxOccurs() > 1);
                 pinfo.setElementName(type.getElementForElementName(elementname).getName());
-                
-                if (innerType.getName().equals(CUtils.anyTypeQname))
-                    pinfo.setAnyType(true);
-                
+                pinfo.setAnyType(innerType.isAnyType());
                 pinfo.setNillable(eleinfo.isNillable());
-                
-                if (eleinfo.getMinOccurs() == 0)
-                    pinfo.setOptional(true);
-                else
-                    pinfo.setOptional(false);
+                pinfo.setOptional(eleinfo.getMinOccurs() == 0);
 
                 minfo.addInputParameter(pinfo);
             }
@@ -1490,8 +1469,7 @@
                 type.setIsUnwrappedInputType(true);
                 pinfo.setParamName(elementName, c_typeMap);
                 pinfo.setElementName(type.getName());
-                if (type.getName().equals(CUtils.anyTypeQname))
-                    pinfo.setAnyType(true);
+                pinfo.setAnyType(type.isAnyType());
     
                 // Let us be nice and uppercase the first character in type name, 
                 // in addition to resolving method name/type conflicts.