private boolean isValidSelector()

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


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