private Assertion intersect()

in src/main/java/org/apache/neethi/util/PolicyIntersector.java [60:85]


    private Assertion intersect(Assertion a1, Assertion a2) {
        if (a1 instanceof IntersectableAssertion) {
            if (!((IntersectableAssertion)a1).isCompatible(a2, strict)) {
                return null;
            }
            return ((IntersectableAssertion)a1).intersect(a2, strict);
        }
        //the assertion doesn't implement IntersectableAssertion so we
        //need to try doing a basic intersect ourself
        if (a1.getName().equals(a2.getName())) {
            if (a1 instanceof PolicyContainingAssertion 
                && a2 instanceof PolicyContainingAssertion) {
                PolicyContainingAssertion pc1 = (PolicyContainingAssertion)a1;
                PolicyContainingAssertion pc2 = (PolicyContainingAssertion)a2;
                Policy p1 = pc1.getPolicy();
                Policy p2 = pc2.getPolicy();
                PolicyIntersector pi = new PolicyIntersector(strict);
                if (pi.compatiblePolicies(p1, p2)) {
                    return a1;
                }
            } else {
                return a1;
            }
        }
        return null;
    }