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