On Sun, 14 Jan 2024 14:54:36 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:
> Moves `SimpleSelector` and `CompoundSelector` to internal packages. > > This can be done with only a minor API break, as `SimpleSelector` and > `CompoundSelector` were public before. However, these classes could not be > constructed by 3rd parties. The only way to access them was by doing a cast > (generally they're accessed via `Selector` not by their sub types). The > reason they were public at all was because the CSS engine needs to be able to > access them from internal packages. > > This change fixes a mistake (or possibly something that couldn't be modelled > at the time) when the CSS API was first made public. The intention was always > to have a `Selector` interface/abstract class, with private implementations > (`SimpleSelector` and `CompoundSelector`). > > This PR as said has a small API break. The other changes are (AFAICS) source > and binary compatible: > > - Made `Selector` `sealed` only permitting `SimpleSelector` and > `CompoundSelector` -- as `Selector` had a package private constructor, there > are no concerns with pre-existing subclasses > - `Selector` has a few more methods that are now `protected` -- given that > the class is now sealed, these modified methods are not accessible (they may > still require rudimentary documentation I suppose) > - `Selector` now has a `public` default constructor -- as the class is > sealed, it is inaccessible > - `SimpleSelector` and `CompoundSelector` have a few more `public` methods, > but they're internal now, so it is irrelevant > - `createMatch` was implemented directly in `Selector` to avoid having to > expose package private fields in `Match` for use by `CompoundSelector` > - No need anymore for the `SimpleSelectorShim` This pull request has now been integrated. Changeset: dad80e92 Author: John Hendrikx <jhendr...@openjdk.org> URL: https://git.openjdk.org/jfx/commit/dad80e9284fcde36aa0cac4e6459b6dbfd43ee13 Stats: 1836 lines in 14 files changed: 912 ins; 888 del; 36 mod 8323706: Remove SimpleSelector and CompoundSelector classes Move SimpleSelector and CompoundSelector to internal packages Reviewed-by: kcr, angorya ------------- PR: https://git.openjdk.org/jfx/pull/1333