private boolean isValidSelector()

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


    private boolean isValidSelector(Selector selector) {
        switch ( selector.getSelectorType() ) {
        case Selector.SAC_ANY_NODE_SELECTOR:
        case Selector.SAC_ELEMENT_NODE_SELECTOR:
        case Selector.SAC_PSEUDO_ELEMENT_SELECTOR:
        case Selector.SAC_ROOT_NODE_SELECTOR:
        case Selector.SAC_NEGATIVE_SELECTOR:
            return cssPolicy.isValidElementName(selector.toString().toLowerCase(Locale.ENGLISH));
        case Selector.SAC_DIRECT_ADJACENT_SELECTOR:
            SiblingSelector sibling = (SiblingSelector) selector;
            return isValidSelector(sibling.getSiblingSelector()) && isValidSelector(sibling.getSelector());
        case Selector.SAC_CONDITIONAL_SELECTOR:
            ConditionalSelector conditional = (ConditionalSelector) selector;
            return isValidSelector(conditional.getSimpleSelector()) && isValidCondition(conditional.getCondition());
        case Selector.SAC_CHILD_SELECTOR:
        case Selector.SAC_DESCENDANT_SELECTOR:
            DescendantSelector descendant = (DescendantSelector) selector;
            return isValidSelector(descendant.getAncestorSelector()) && isValidSelector(descendant.getSimpleSelector());
            default:
                return false;
        }
    }