You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by jk...@apache.org on 2006/02/04 02:47:43 UTC

svn commit: r374813 - in /incubator/woden/java/src/org/apache/woden: internal/ internal/wsdl20/ internal/wsdl20/extensions/soap/ internal/xml/ wsdl20/extensions/ xml/

Author: jkaputin
Date: Fri Feb  3 17:47:22 2006
New Revision: 374813

URL: http://svn.apache.org/viewcvs?rev=374813&view=rev
Log:
Store the QName of extension attributes in XMLAttr,
modify related methods/classes to accomodate it 
and added an AttributeExtensible method to get ext 
attributes by namespace.
 

Modified:
    incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
    incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java
    incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java
    incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/BooleanAttrImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/QNameAttrImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/QNameListAttrImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/StringAttrImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/URIAttrImpl.java
    incubator/woden/java/src/org/apache/woden/internal/xml/XMLAttrImpl.java
    incubator/woden/java/src/org/apache/woden/wsdl20/extensions/AttributeExtensible.java
    incubator/woden/java/src/org/apache/woden/xml/UnknownAttr.java
    incubator/woden/java/src/org/apache/woden/xml/XMLAttr.java

Modified: incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java Fri Feb  3 17:47:22 2006
@@ -1824,7 +1824,7 @@
             String localName = domAttr.getLocalName();
             String namespaceURI = domAttr.getNamespaceURI();
             String prefix = domAttr.getPrefix();
-            QName qname = new QName(namespaceURI, localName, (prefix != null ? prefix : ""));
+            QName attrType = new QName(namespaceURI, localName, (prefix != null ? prefix : ""));
             
             if (namespaceURI != null && !namespaceURI.equals(Constants.NS_URI_WSDL20))
             {
@@ -1838,12 +1838,12 @@
                     ExtensionRegistry extReg = desc.getExtensionRegistry();
                     if (extReg != null)
                     {
-                        xmlAttr = extReg.createExtAttribute(wsdlClass, qname);
+                        xmlAttr = extReg.createExtAttribute(wsdlClass, attrType);
                         if(xmlAttr != null) //TODO use an 'UnknownAttr' class in place of null
                         {
                             String attrValue = domAttr.getValue();
-                            xmlAttr.init(domEl, attrValue);
-                            wsdlObj.setExtensionAttribute(qname, xmlAttr);
+                            xmlAttr.init(domEl, attrType, attrValue);
+                            wsdlObj.setExtensionAttribute(attrType, xmlAttr);
                         }
                     }
                     else

Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java Fri Feb  3 17:47:22 2006
@@ -15,8 +15,10 @@
  */
 package org.apache.woden.internal.wsdl20;
 
+import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -65,6 +67,34 @@
             return (XMLAttr)fExtAttributes.get(attrQN);
         } else {
             return null;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
+     */
+    public XMLAttr[] getExtensionAttributesForNamespace(URI namespace) 
+    {
+        if(namespace != null)
+        {
+            String extensionNS = namespace.toString();
+            List list = new Vector();
+            Collection coll = fExtAttributes.keySet();
+            for(Iterator i = coll.iterator(); i.hasNext();)
+            {
+                QName qn = (QName)i.next();
+                if(qn.getNamespaceURI().equals(extensionNS))
+                {
+                    list.add(fExtAttributes.get(qn));
+                }
+            }
+            XMLAttr[] array = new XMLAttr[list.size()];
+            list.toArray(array);
+            return array;
+        }
+        else
+        {
+            return new XMLAttr[0];
         }
     }
 

Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java Fri Feb  3 17:47:22 2006
@@ -15,8 +15,10 @@
  */
 package org.apache.woden.internal.wsdl20.extensions.soap;
 
+import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -227,6 +229,33 @@
         }
     }
 
+    /* (non-Javadoc)
+     * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
+     */
+    public XMLAttr[] getExtensionAttributesForNamespace(URI namespace) 
+    {
+        if(namespace != null)
+        {
+            String extensionNS = namespace.toString();
+            List list = new Vector();
+            Collection coll = fExtAttributes.keySet();
+            for(Iterator i = coll.iterator(); i.hasNext();)
+            {
+                QName qn = (QName)i.next();
+                if(qn.getNamespaceURI().equals(extensionNS))
+                {
+                    list.add(fExtAttributes.get(qn));
+                }
+            }
+            XMLAttr[] array = new XMLAttr[list.size()];
+            list.toArray(array);
+            return array;
+        }
+        else
+        {
+            return new XMLAttr[0];
+        }
+    }
     /* (non-Javadoc)
      * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributes()
      */

Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java Fri Feb  3 17:47:22 2006
@@ -18,6 +18,7 @@
 import java.net.URI;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -181,6 +182,34 @@
         }
     }
 
+    /* (non-Javadoc)
+     * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
+     */
+    public XMLAttr[] getExtensionAttributesForNamespace(URI namespace) 
+    {
+        if(namespace != null)
+        {
+            String extensionNS = namespace.toString();
+            List list = new Vector();
+            Collection coll = fExtAttributes.keySet();
+            for(Iterator i = coll.iterator(); i.hasNext();)
+            {
+                QName qn = (QName)i.next();
+                if(qn.getNamespaceURI().equals(extensionNS))
+                {
+                    list.add(fExtAttributes.get(qn));
+                }
+            }
+            XMLAttr[] array = new XMLAttr[list.size()];
+            list.toArray(array);
+            return array;
+        }
+        else
+        {
+            return new XMLAttr[0];
+        }
+    }
+    
     /* (non-Javadoc)
      * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributes()
      */

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/BooleanAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/BooleanAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/BooleanAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/BooleanAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.internal.xml;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.apache.woden.internal.ErrorLocatorImpl;
@@ -38,10 +40,10 @@
      * TODO This ctor is not used for extension attributes, but may be useful if
      * parsing of native WSDL attributes is changed to use the XMLAttr interface.
      */
-    public BooleanAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    public BooleanAttrImpl(Element ownerEl, QName attrType, String attrValue, ErrorReporter errRpt) 
                        throws WSDLException
     {
-        super(ownerEl, attrValue, errRpt);
+        super(ownerEl, attrType, attrValue, errRpt);
     }
     
     /* ************************************************************

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/QNameAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/QNameAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/QNameAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/QNameAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -38,10 +38,10 @@
      * TODO This ctor is not used for extension attributes, but may be useful if
      * parsing of native WSDL attributes is changed to use the XMLAttr interface.
      */
-    public QNameAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    public QNameAttrImpl(Element ownerEl, QName attrType, String attrValue, ErrorReporter errRpt) 
                          throws WSDLException
     {
-        super(ownerEl, attrValue, errRpt);
+        super(ownerEl, attrType, attrValue, errRpt);
     }
     
     /* ************************************************************

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/QNameListAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/QNameListAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/QNameListAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/QNameListAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -43,10 +43,10 @@
      * TODO This ctor is not used for extension attributes, but may be useful if
      * parsing of native WSDL attributes is changed to use the XMLAttr interface.
      */
-    public QNameListAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    public QNameListAttrImpl(Element ownerEl, QName attrType, String attrValue, ErrorReporter errRpt) 
                          throws WSDLException
     {
-        super(ownerEl, attrValue, errRpt);
+        super(ownerEl, attrType, attrValue, errRpt);
     }
     
     /* ************************************************************

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/StringAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/StringAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/StringAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/StringAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.internal.xml;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.apache.woden.internal.ErrorLocatorImpl;
@@ -35,10 +37,10 @@
      * TODO This ctor is not used for extension attributes, but may be useful if
      * parsing of native WSDL attributes is changed to use the XMLAttr interface.
      */
-    public StringAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    public StringAttrImpl(Element ownerEl, QName attrType, String attrValue, ErrorReporter errRpt) 
                        throws WSDLException
     {
-        super(ownerEl, attrValue, errRpt);
+        super(ownerEl, attrType, attrValue, errRpt);
     }
     
     /* ************************************************************

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/URIAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/URIAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/URIAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/URIAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -18,6 +18,8 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.apache.woden.internal.ErrorLocatorImpl;
@@ -38,10 +40,10 @@
      * TODO This ctor is not used for extension attributes, but may be useful if
      * parsing of native WSDL attributes is changed to use the XMLAttr interface.
      */
-    public URIAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    public URIAttrImpl(Element ownerEl,  QName attrType, String attrValue, ErrorReporter errRpt) 
                        throws WSDLException
     {
-        super(ownerEl, attrValue, errRpt);
+        super(ownerEl, attrType, attrValue, errRpt);
     }
     
     /* ************************************************************

Modified: incubator/woden/java/src/org/apache/woden/internal/xml/XMLAttrImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/xml/XMLAttrImpl.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/xml/XMLAttrImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/xml/XMLAttrImpl.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.internal.xml;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.apache.woden.internal.ErrorReporterImpl;
@@ -30,6 +32,7 @@
  */
 public abstract class XMLAttrImpl implements XMLAttr
 {
+    protected QName fAttrType = null;
     protected Object fContent = null;
     protected String fExternalForm = null;
     protected boolean fValid = true;
@@ -41,11 +44,11 @@
      * This ctor is not used for extension attributes, but may be useful if
      * parsing of native attributes is changed to use the XMLAttr interface.
      */
-    protected XMLAttrImpl(Element ownerEl, String attrValue, ErrorReporter errRpt) 
+    protected XMLAttrImpl(Element ownerEl, QName attrType, String attrValue, ErrorReporter errRpt) 
                        throws WSDLException
     {
         fErrorReporter = errRpt;
-        init(ownerEl, attrValue);
+        init(ownerEl, attrType, attrValue);
     }
     
     /* ************************************************************
@@ -56,11 +59,16 @@
         fErrorReporter = errRpt;
     }
     
-    public void init(Element ownerEl, String attrValue) throws WSDLException
+    public void init(Element ownerEl, QName attrType, String attrValue) throws WSDLException
     {
+        fAttrType = attrType;
         fExternalForm = attrValue;
         fContent = convert(ownerEl, attrValue);
         if(fContent == null) fValid = false;
+    }
+    
+    public QName getAttributeType() {
+        return fAttrType;
     }
     
     public Object getContent() {

Modified: incubator/woden/java/src/org/apache/woden/wsdl20/extensions/AttributeExtensible.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/extensions/AttributeExtensible.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/extensions/AttributeExtensible.java (original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/extensions/AttributeExtensible.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.wsdl20.extensions;
 
+import java.net.URI;
+
 import javax.xml.namespace.QName;
 
 import org.apache.woden.xml.XMLAttr;
@@ -33,10 +35,21 @@
      * 
      * TODO ? @throws IllegalArgumentException if the QName is null
      */
-    public void setExtensionAttribute(QName attrQN, XMLAttr attr);
+    public void setExtensionAttribute(QName attrType, XMLAttr attr);
+   
+    /**
+     * Return the extension attribute with this QName.
+     */
+    public XMLAttr getExtensionAttribute(QName attrType);
     
-    public XMLAttr getExtensionAttribute(QName attrQN);
+    /**
+     * Return the extension attributes from this namespace.
+     */
+    public XMLAttr[] getExtensionAttributesForNamespace(URI namespace);
     
+    /**
+     * Return all extension attributes.
+     */
     public XMLAttr[] getExtensionAttributes();
 
 }

Modified: incubator/woden/java/src/org/apache/woden/xml/UnknownAttr.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/xml/UnknownAttr.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/xml/UnknownAttr.java (original)
+++ incubator/woden/java/src/org/apache/woden/xml/UnknownAttr.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.xml;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.w3c.dom.Element;
@@ -28,6 +30,7 @@
  */
 public class UnknownAttr implements XMLAttr 
 {
+    private QName fAttrType = null;
     private Object fContent = null;
     private String fExternalForm = null;
     private boolean fValid = true;
@@ -43,12 +46,21 @@
     /* (non-Javadoc)
      * @see org.apache.woden.xml.XMLAttr#init(org.w3c.dom.Element, java.lang.String)
      */
-    public void init(Element ownerEl, String attrValue) throws WSDLException {
+    public void init(Element ownerEl, QName attrType, String attrValue) throws WSDLException 
+    {
+        fAttrType = attrType;
         fExternalForm = attrValue;
         fContent = attrValue;
         if(fContent == null) fValid = false;
     }
 
+    /* (non-Javadoc)
+     * @see org.apache.woden.xml.XMLAttr#getAttributeType()
+     */
+    public QName getAttributeType() {
+        return fAttrType;
+    }
+    
     /* (non-Javadoc)
      * @see org.apache.woden.xml.XMLAttr#getContent()
      */

Modified: incubator/woden/java/src/org/apache/woden/xml/XMLAttr.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/xml/XMLAttr.java?rev=374813&r1=374812&r2=374813&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/xml/XMLAttr.java (original)
+++ incubator/woden/java/src/org/apache/woden/xml/XMLAttr.java Fri Feb  3 17:47:22 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.woden.xml;
 
+import javax.xml.namespace.QName;
+
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
 import org.w3c.dom.Element;
@@ -40,7 +42,9 @@
      * 
      * @throws WSDLException if conversion errors occur
      */
-    public void init(Element ownerEl, String attrValue) throws WSDLException;
+    public void init(Element ownerEl, QName attrType, String attrValue) throws WSDLException;
+    
+    public QName getAttributeType();
     
     public Object getContent();
     



---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org