SelectorFactory
Date: 2015-12-02

org.w3c.css.sac

## Interface SelectorFactory

-     public interface SelectorFactory

  See Also:
    `Selector`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SimpleSelector` | `createAnyNodeSelector()` Creates an any node selector.
    `CharacterDataSelector` | `createCDataSectionSelector(java.lang.String data)` Creates a cdata section node selector.
    `DescendantSelector` | `createChildSelector(Selector parent, SimpleSelector child)` Creates a child selector.
    `CharacterDataSelector` | `createCommentSelector(java.lang.String data)` Creates a comment node selector.
    `ConditionalSelector` | `createConditionalSelector(SimpleSelector selector, Condition condition)` Creates a conditional selector.
    `DescendantSelector` | `createDescendantSelector(Selector parent, SimpleSelector descendant)` Creates a descendant selector.
    `SiblingSelector` | `createDirectAdjacentSelector(short nodeType, Selector child, SimpleSelector directAdjacent)` Creates a sibling selector.
    `ElementSelector` | `createElementSelector(java.lang.String namespaceURI, java.lang.String tagName)` Creates an element selector.
    `NegativeSelector` | `createNegativeSelector(SimpleSelector selector)` Creates an negative selector.
    `ProcessingInstructionSelector` | `createProcessingInstructionSelector(java.lang.String target, java.lang.String data)` Creates a processing instruction node selector.
    `ElementSelector` | `createPseudoElementSelector(java.lang.String namespaceURI, java.lang.String pseudoName)` Creates a pseudo element selector.
    `SimpleSelector` | `createRootNodeSelector()` Creates an root node selector.
    `CharacterDataSelector` | `createTextNodeSelector(java.lang.String data)` Creates a text node selector.

- - ### Method Detail

    - #### createConditionalSelector

          ConditionalSelector createConditionalSelector(SimpleSelector selector,
                                                      Condition condition)
                                                        throws CSSException

      Creates a conditional selector.
      Parameters:
        `selector` - a selector.
        `condition` - a condition
      Returns:
        the conditional selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createAnyNodeSelector

          SimpleSelector createAnyNodeSelector()
                                               throws CSSException

      Creates an any node selector.
      Returns:
        the any node selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createRootNodeSelector

          SimpleSelector createRootNodeSelector()
                                                throws CSSException

      Creates an root node selector.
      Returns:
        the root node selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createNegativeSelector

          NegativeSelector createNegativeSelector(SimpleSelector selector)
                                                  throws CSSException

      Creates an negative selector.
      Parameters:
        `selector` - a selector.
      Returns:
        the negative selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createElementSelector

          ElementSelector createElementSelector(java.lang.String namespaceURI,
                                              java.lang.String tagName)
                                                throws CSSException

      Creates an element selector.
      Parameters:
        `namespaceURI` - the namespace URI of the element selector.
        `tagName` - the local part of the element name. `NULL` if this element selector can match any element.
      Returns:
        the element selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createTextNodeSelector

          CharacterDataSelector createTextNodeSelector(java.lang.String data)
                                                       throws CSSException

      Creates a text node selector.
      Parameters:
        `data` - the data
      Returns:
        the text node selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createCDataSectionSelector

          CharacterDataSelector createCDataSectionSelector(java.lang.String data)
                                                           throws CSSException

      Creates a cdata section node selector.
      Parameters:
        `data` - the data
      Returns:
        the cdata section node selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createProcessingInstructionSelector

          ProcessingInstructionSelector createProcessingInstructionSelector(java.lang.String target,
                                                                          java.lang.String data)
                                                                            throws CSSException

      Creates a processing instruction node selector.
      Parameters:
        `target` - the target
        `data` - the data
      Returns:
        the processing instruction node selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createCommentSelector

          CharacterDataSelector createCommentSelector(java.lang.String data)
                                                      throws CSSException

      Creates a comment node selector.
      Parameters:
        `data` - the data
      Returns:
        the comment node selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createPseudoElementSelector

          ElementSelector createPseudoElementSelector(java.lang.String namespaceURI,
                                                    java.lang.String pseudoName)
                                                      throws CSSException

      Creates a pseudo element selector.
      Parameters:
        `pseudoName` - the pseudo element name. `NULL` if this element selector can match any pseudo element.
      Returns:
        the element selector
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createDescendantSelector

          DescendantSelector createDescendantSelector(Selector parent,
                                                    SimpleSelector descendant)
                                                      throws CSSException

      Creates a descendant selector.
      Parameters:
        `parent` - the parent selector
        `descendant` - the descendant selector
      Returns:
        the combinator selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createChildSelector

          DescendantSelector createChildSelector(Selector parent,
                                               SimpleSelector child)
                                                 throws CSSException

      Creates a child selector.
      Parameters:
        `parent` - the parent selector
        `child` - the child selector
      Returns:
        the combinator selector.
      Throws:
        `CSSException` - If this selector is not supported.

    - #### createDirectAdjacentSelector

          SiblingSelector createDirectAdjacentSelector(short nodeType,
                                                     Selector child,
                                                     SimpleSelector directAdjacent)
                                                       throws CSSException

      Creates a sibling selector.
      Parameters:
        `nodeType` - the type of nodes in the siblings list.
        `child` - the child selector
        `adjacent` - the direct adjacent selector
      Returns:
        the sibling selector with nodeType equals to org.w3c.dom.Node.ELEMENT_NODE
      Throws:
        `CSSException` - If this selector is not supported.