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`

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

Commit messages:
 - Move SimpleSelector and CompoundSelector to private classes

Changes: https://git.openjdk.org/jfx/pull/1333/files
 Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1333&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8323706
  Stats: 169 lines in 10 files changed: 46 ins; 86 del; 37 mod
  Patch: https://git.openjdk.org/jfx/pull/1333.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1333/head:pull/1333

PR: https://git.openjdk.org/jfx/pull/1333

Reply via email to