private boolean isValidCondition()

in src/main/java/org/apache/sling/xss/impl/style/ValidatingDocumentHandler.java [126:152]


    private boolean isValidCondition(Condition condition) {

        switch (condition.getConditionType()) {
        case Condition.SAC_CLASS_CONDITION:
            return cssPolicy.isValidClassName(condition.toString().toLowerCase(Locale.ENGLISH));
        case Condition.SAC_ID_CONDITION:
            return cssPolicy.isValidId(condition.toString().toLowerCase(Locale.ENGLISH));
        case Condition.SAC_AND_CONDITION:
        case Condition.SAC_OR_CONDITION:
            CombinatorCondition comb = (CombinatorCondition) condition;
            return isValidCondition(comb.getFirstCondition()) && isValidCondition(comb.getSecondCondition());
        case Condition.SAC_NEGATIVE_CONDITION:
            return isValidCondition(((NegativeCondition) condition).getCondition());
        case Condition.SAC_PSEUDO_CLASS_CONDITION:
            return cssPolicy.isValidPseudoElementName(condition.toString().toLowerCase(Locale.ENGLISH));
        case Condition.SAC_ATTRIBUTE_CONDITION:
        case Condition.SAC_BEGIN_HYPHEN_ATTRIBUTE_CONDITION:
        case Condition.SAC_ONE_OF_ATTRIBUTE_CONDITION:
            return false;
        case Condition.SAC_ONLY_CHILD_CONDITION:
        case Condition.SAC_ONLY_TYPE_CONDITION:
            // constant values, unconditionally true
            return true;
        default:
            return false;
        }
    }