private boolean isValidCondition()

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


    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;
        }
    }