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 Details

  - ### 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`