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