You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2006/11/04 00:28:34 UTC

svn commit: r471050 - /incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java

Author: mszefler
Date: Fri Nov  3 15:28:30 2006
New Revision: 471050

URL: http://svn.apache.org/viewvc?view=rev&rev=471050
Log:
Fixed extensibility element/attribute reporting.

Modified:
    incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java

Modified: incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java?view=diff&rev=471050&r1=471049&r2=471050
==============================================================================
--- incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java (original)
+++ incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObject.java Fri Nov  3 15:28:30 2006
@@ -51,11 +51,13 @@
     private final NSContext _nsContext;
 
     private List<BpelObject> _children = null;
+    
 
     public BpelObject(Element el) {
         _element = el;
         _type = new QName(el.getNamespaceURI(), el.getLocalName());
         _nsContext = new NSContext();
+        
         initNSContext(el);
     }
 
@@ -98,9 +100,22 @@
      *         or Element)
      */
     public Map<QName, Object> getExtensibilityElements() {
-        // TODO: implement
-        return new HashMap<QName, Object>();
-
+        // We consider anything that is not in the namespace of this element to be an
+        // extensibility element/attribute. 
+        HashMap<QName, Object> ee = new HashMap<QName,Object>();
+        for (BpelObject child  :getChildren()) {
+            if (child.getType().getNamespaceURI() != null && !child.getType().getNamespaceURI().equals(getType().getNamespaceURI()))
+                ee.put(child.getType(), child.getElement());
+        }
+        
+        NamedNodeMap nnm = getElement().getAttributes();
+        for (int i = 0; i < nnm.getLength(); ++i) {
+            Node n = nnm.item(i);
+            if (n.getNamespaceURI() != null && !n.getNamespaceURI().equals(getType().getNamespaceURI()))
+                ee.put(new QName(n.getNamespaceURI(), n.getLocalName()), n.getTextContent());
+        }
+        return ee;
+        
     }
 
 
@@ -116,7 +131,7 @@
      * Is this a BPEL 1.1 object?
      * @return
      */
-    protected boolean is11() {
+    public boolean is11() {
         return getType().getNamespaceURI() != null && 
             (getType().getNamespaceURI().equals(Bpel11QNames.NS_BPEL4WS_2003_03)
                     || getType().getNamespaceURI().equals(Bpel11QNames.NS_BPEL4WS_PARTNERLINK_2003_05));