in src/main/java/org/apache/neethi/builders/xml/XMLPrimitiveAssertionBuilder.java [42:76]
public Assertion build(Element element, AssertionBuilderFactory factory)
throws IllegalArgumentException {
Node nd = element.getFirstChild();
int count = 0;
int policyCount = 0;
Element policyEl = null;
while (nd != null) {
if (nd instanceof Element) {
count++;
Element el = (Element)nd;
if (Constants.isPolicyElement(el.getNamespaceURI(), el.getLocalName())) {
policyEl = el;
policyCount++;
}
}
nd = nd.getNextSibling();
}
Map<QName, String> atts = new HashMap<QName, String>();
NamedNodeMap attrs = element.getAttributes();
if (attrs != null) {
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, atts.isEmpty() ? null : atts);
} else if (policyCount == 1 && count == 1) {
Policy policy = factory.getPolicyEngine().getPolicy(policyEl);
return newPolicyContainingAssertion(element, atts.isEmpty() ? null : atts, policy);
}
return new XmlPrimitiveAssertion(element);
}