Module javafx.graphics
Package javafx.css

## Class CompoundSelector

- java.lang.Object
- - javafx.css.Selector
  - - javafx.css.CompoundSelector

-     public final class CompoundSelector
      extends Selector

  A compound selector which behaves according to the CSS standard. The selector is composed of one or more `Selectors`, along with an array of `CompoundSelectorRelationships` indicating the required relationship at each stage. There must be exactly one less `Combinator` than there are selectors.

  For example, the parameters `[selector1, selector2, selector3]` and `[Combinator.CHILD, Combinator.DESCENDANT]` will match a component when all of the following conditions hold:

  1. The component itself is matched by selector3
  2. The component has an ancestor which is matched by selector2
  3. The ancestor matched in step 2 is a direct CHILD of a component matched by selector1
  In other words, the compound selector specified above is (in CSS syntax) `selector1 > selector2 selector3`. The greater-than (>) between selector1 and selector2 specifies a direct CHILD, whereas the whitespace between selector2 and selector3 corresponds to `Combinator.DESCENDANT`.
  Since:
    9

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `applies​(Styleable styleable)` |
    `boolean` | `applies​(Styleable styleable, Set<PseudoClass>[] triggerStates, int depth)` |
    `Match` | `createMatch()` |
    `boolean` | `equals​(Object obj)` |
    `List<SimpleSelector>` | `getSelectors()` | The selectors that make up this compound selector
    `int` | `hashCode()` |
    `boolean` | `stateMatches​(Styleable styleable, Set<PseudoClass> states)` | Determines whether the current state of the node and its parents matches the pseudo-classes defined (if any) for this selector.
    `String` | `toString()` |
    `protected void` | `writeBinary​(DataOutputStream os, StyleConverter.StringStore stringStore)` |

    - ### Methods inherited from class javafx.css.Selector

      `createSelector, getOrdinal, getRule, setOrdinal`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getSelectors

          public List<SimpleSelector> getSelectors()

      The selectors that make up this compound selector
      Returns:
        Immutable List<SimpleSelector>

    - #### createMatch

          public Match createMatch()

      Specified by:
        `createMatch` in class `Selector`

    - #### applies

          public boolean applies​(Styleable styleable)

      Specified by:
        `applies` in class `Selector`

    - #### applies

          public boolean applies​(Styleable styleable,
                                 Set<PseudoClass>[] triggerStates,
                                 int depth)

      Specified by:
        `applies` in class `Selector`

    - #### stateMatches

          public boolean stateMatches​(Styleable styleable,
                                      Set<PseudoClass> states)

      Description copied from class: `Selector`
      Determines whether the current state of the node and its parents matches the pseudo-classes defined (if any) for this selector.
      Specified by:
        `stateMatches` in class `Selector`
      Parameters:
        `styleable` - the styleable
        `states` - the state
      Returns:
        `true` if the current state of the node and its parents matches the pseudo-classes defined (if any) for this selector

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals​(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### writeBinary

          protected final void writeBinary​(DataOutputStream os,
                                           StyleConverter.StringStore stringStore)
                                    throws IOException

      Overrides:
        `writeBinary` in class `Selector`
      Throws:
        `IOException`