Author: dkulp
Date: Fri Feb 18 15:02:01 2011
New Revision: 1072011

URL: http://svn.apache.org/viewvc?rev=1072011&view=rev
Log:
Make sure attributes are saved on the primitive assertions.

Modified:
    
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
    
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
    
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java

Modified: 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java?rev=1072011&r1=1072010&r2=1072011&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
 (original)
+++ 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
 Fri Feb 18 15:02:01 2011
@@ -22,6 +22,7 @@ package org.apache.neethi.builders;
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -53,6 +54,14 @@ public class PolicyContainingPrimitiveAs
         super(name, optional, ignorable);
         this.nested = p;
     }
+    public PolicyContainingPrimitiveAssertion(QName name, 
+                                              boolean optional,
+                                              boolean ignorable,
+                                              Map<QName, String> atts,
+                                              Policy p) {
+        super(name, optional, ignorable, atts);
+        this.nested = p;
+    }
 
     public PolicyComponent normalize() {
         Policy normalisedNested 
@@ -82,7 +91,7 @@ public class PolicyContainingPrimitiveAs
         return p;      
     } 
     protected Assertion clone(boolean optional, Policy n) {
-        return new PolicyContainingPrimitiveAssertion(name, optional, 
ignorable, n);
+        return new PolicyContainingPrimitiveAssertion(name, optional, 
ignorable, attributes, n);
     }
 
     public boolean equal(PolicyComponent policyComponent) {

Modified: 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java?rev=1072011&r1=1072010&r2=1072011&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
 (original)
+++ 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
 Fri Feb 18 15:02:01 2011
@@ -20,6 +20,9 @@
 package org.apache.neethi.builders;
 
 
+import java.util.HashMap;
+import java.util.Map;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
@@ -38,6 +41,7 @@ public class PrimitiveAssertion implemen
     protected QName name;
     protected boolean optional;
     protected boolean ignorable;
+    protected Map<QName, String> attributes;
     
     public PrimitiveAssertion() {
         this((QName)null);
@@ -55,7 +59,33 @@ public class PrimitiveAssertion implemen
         optional = o;
         ignorable = i;
     }
-
+    public PrimitiveAssertion(QName n, boolean o, boolean i, Map<QName, 
String> atts) {
+        name = n;
+        optional = o;
+        ignorable = i;
+        if (atts != null) {
+            attributes = new HashMap<QName, String>(atts);
+        }
+    }
+    public String getAttribute(QName n) {
+        if (attributes != null) {
+            return attributes.get(n);
+        }
+        return null;
+    }
+    public synchronized void addAttribute(QName n, String value) {
+        if (attributes == null) {
+            attributes = new HashMap<QName, String>();
+        }
+        attributes.put(n, value);
+    }
+    public synchronized void addAttributes(Map<QName, String> atts) {
+        if (attributes == null) {
+            attributes = new HashMap<QName, String>(atts);
+        } else {
+            attributes.putAll(atts);
+        }
+    }
     public String toString() {
         return name.toString();
     }
@@ -138,7 +168,7 @@ public class PrimitiveAssertion implemen
     }
     
     protected Assertion clone(boolean isoptional) {
-        return new PrimitiveAssertion(name, isoptional, ignorable);
+        return new PrimitiveAssertion(name, isoptional, ignorable, attributes);
     }
 
 }
\ No newline at end of file

Modified: 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java?rev=1072011&r1=1072010&r2=1072011&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java
 Fri Feb 18 15:02:01 2011
@@ -19,10 +19,14 @@
 
 package org.apache.neethi.builders.xml;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import javax.xml.namespace.QName;
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
 import org.apache.neethi.Assertion;
@@ -53,20 +57,27 @@ public class XMLPrimitiveAssertionBuilde
             }
             nd = nd.getNextSibling();
         }
+        Map<QName, String> atts = new HashMap<QName, String>();
+        NamedNodeMap attrs = element.getAttributes();
+        for (int x = 0; x < attrs.getLength(); x++) {
+            Attr attr = (Attr)attrs.item(x);
+            atts.put(new QName(attr.getNamespaceURI(), attr.getLocalName()), 
attr.getValue());
+        }
+
         if (count == 0) {
-            return newPrimitiveAssertion(element);
+            return newPrimitiveAssertion(element, atts.isEmpty() ? null : 
atts);
         } else if (policyCount == 1 && count == 1) {
             Policy policy = factory.getPolicyEngine().getPolicy(policyEl);
-            return newPolicyContainingAssertion(element, policy);
+            return newPolicyContainingAssertion(element, atts.isEmpty() ? null 
: atts, policy);
         }
         return new XmlPrimitiveAssertion(element);
     }
     
-    public Assertion newPrimitiveAssertion(Element element) {
+    public Assertion newPrimitiveAssertion(Element element, Map<QName, String> 
atts) {
         return new PrimitiveAssertion(new QName(element.getNamespaceURI(), 
element.getLocalName()),
                                       isOptional(element), 
isIgnorable(element));        
     }
-    public Assertion newPolicyContainingAssertion(Element element, Policy 
policy) {
+    public Assertion newPolicyContainingAssertion(Element element, Map<QName, 
String> atts, Policy policy) {
         return new PolicyContainingPrimitiveAssertion(new 
QName(element.getNamespaceURI(),
                                                                 
element.getLocalName()),
                                       isOptional(element), 
isIgnorable(element),


Reply via email to