void checkExactlyOnes() { // Policy has been normalized and merged by now but unfortunately // ExactlyOnce have not been normalized properly by Neethi, for ex // <Policy> // <ExactlyOne><All><A></All></ExactlyOne> // <ExactlyOne><All><B></All></ExactlyOne> // </Policy> // this is what we can see after the normalization happens but in fact this // is still unnormalized expression, should be // <Policy> // <ExactlyOne><All><A></All><All><B></All></ExactlyOne> // </Policy> List<?> assertions = policy.getPolicyComponents(); if (assertions.size() <= 1) { return; } Policy p = new Policy(); ExactlyOne alternatives = new ExactlyOne(); p.addPolicyComponent(alternatives); for (Object a : assertions) { alternatives.addPolicyComponents(((ExactlyOne)a).getPolicyComponents()); } setPolicy(p); } }
void checkExactlyOnes() { // Policy has been normalized and merged by now but unfortunately // ExactlyOnce have not been normalized properly by Neethi, for ex // <Policy> // <ExactlyOne><All><A></All></ExactlyOne> // <ExactlyOne><All><B></All></ExactlyOne> // </Policy> // this is what we can see after the normalization happens but in fact this // is still unnormalized expression, should be // <Policy> // <ExactlyOne><All><A></All><All><B></All></ExactlyOne> // </Policy> List<?> assertions = policy.getPolicyComponents(); if (assertions.size() <= 1) { return; } Policy p = new Policy(); ExactlyOne alternatives = new ExactlyOne(); p.addPolicyComponent(alternatives); for (Object a : assertions) { alternatives.addPolicyComponents(((ExactlyOne)a).getPolicyComponents()); } setPolicy(p); } }
public EndpointPolicy updatePolicy(Policy p, Message msg) { EndpointPolicyImpl epi = createEndpointPolicy(); if (!PolicyUtils.isEmptyPolicy(p)) { Policy normalizedPolicy = p.normalize(engine == null ? null : engine.getRegistry(), true); epi.setPolicy(getPolicy().merge(normalizedPolicy)); } else { Policy clonedPolicy = new Policy(); clonedPolicy.addPolicyComponents(getPolicy().getPolicyComponents()); epi.setPolicy(clonedPolicy); } epi.checkExactlyOnes(); epi.finalizeConfig(msg); return epi; }
public EndpointPolicy updatePolicy(Policy p, Message msg) { EndpointPolicyImpl epi = createEndpointPolicy(); if (!PolicyUtils.isEmptyPolicy(p)) { Policy normalizedPolicy = p.normalize(engine == null ? null : engine.getRegistry(), true); epi.setPolicy(getPolicy().merge(normalizedPolicy)); } else { Policy clonedPolicy = new Policy(); clonedPolicy.addPolicyComponents(getPolicy().getPolicyComponents()); epi.setPolicy(clonedPolicy); } epi.checkExactlyOnes(); epi.finalizeConfig(msg); return epi; }