in src/main/java/org/apache/neethi/PolicyBuilder.java [187:228]
private PolicyOperator processOperationElement(Object operationElement,
PolicyOperator operator) {
if (Constants.TYPE_POLICY == operator.getType()) {
Policy policyOperator = (Policy) operator;
Map<QName, String> attributes = factory.getConverterRegistry().getAttributes(operationElement);
for (Map.Entry<QName, String> ent : attributes.entrySet()) {
policyOperator.addAttribute(ent.getKey(), ent.getValue());
}
}
for (Iterator<?> iterator = factory.getConverterRegistry().getChildElements(operationElement);
iterator.hasNext();) {
Object childElement = iterator.next();
QName qn = factory.getConverterRegistry().findQName(childElement);
if (childElement == null || qn == null
|| qn.getNamespaceURI() == null) {
notifyUnknownPolicyElement(childElement);
} else if (Constants.isInPolicyNS(qn)) {
if (Constants.ELEM_POLICY.equals(qn.getLocalPart())) {
operator.addPolicyComponent(getPolicyOperator(childElement));
} else if (Constants.ELEM_EXACTLYONE.equals(qn.getLocalPart())) {
operator.addPolicyComponent(getExactlyOneOperator(childElement));
} else if (Constants.ELEM_ALL.equals(qn.getLocalPart())) {
operator.addPolicyComponent(getAllOperator(childElement));
} else if (Constants.ELEM_POLICY_REF.equals(qn.getLocalPart())) {
operator.addPolicyComponent(getPolicyReference(childElement));
} else {
operator.addPolicyComponent(factory.build(childElement));
}
} else {
operator.addPolicyComponent(factory.build(childElement));
}
}
return operator;
}