On Fri, 19 Jan 2024 16:00:49 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:

>> The SimpleSelector and CompoundSelector classes are public classes in an 
>> exported package, javafx.css, but they are not intended to be used by 
>> applications. They are implementation details. They cannot be constructed 
>> directly and no other JavaFX API accepts or returns a SimpleSelector or 
>> CompoundSelector.
>> 
>> We should deprecate them for removal so we can move them to a non-exported 
>> package, removing them from the public API.
>
> John Hendrikx has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add since parameter to deprecation annotation

Okay, so I added the method `Set<String> getClasses()`:

The reasoning is as follows:
- The ideal name `getStyleClasses` is currently in use by `List<String> 
getStyleClasses()`
   - Internally (for selectors), style classes are not a `List`, duplicates are 
removed, and the order is lost.  Exposing it as a `List` seems to offer 
guarantees we can't offer
- Perhaps the next best name `getStyleClassSet` is taken up by the old 
`Set<StyleClass> getStyleClassSet()` -- I can't use this as `StyleClass` is 
about to be phased out for performance reasons
- Mirroring what `Styleable` does with `ObservableList<String> getStyleClass()` 
is less than ideal (it is a `List`), however it does set some precedence for 
using a name like `getStyleClass` even though that is not a best practice for 
collections (it should be plural)
- CSS reference never really uses the term "style classes", just classes: 
https://www.w3schools.com/cssref/css_selectors.php

My conclusion is that we either need two rounds to get this right (to first 
free up our first choice `getStyleClasses`), or we can settle on one of: 
`getStyleClassNames`, `getStyles`, `getStyleNames`, `getClasses`, 
`getClassNames`.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1340#issuecomment-1923809524

Reply via email to