RFR: 8294809: ListenerHelper for managing and disconnecting listeners [v9]
Ajit Ghaisas
aghaisas at openjdk.org
Wed Nov 16 09:51:07 UTC 2022
On Tue, 15 Nov 2022 18:16:20 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> The `accessor` cannot be null **only if** it is used from *Skins.
>> In the current form, as we provide a no-argument public constructor, it is possible to create an object of `ListenerHelper` without calling setAccessor. Many unit tests added as part of this PR create such `ListenerHelper` objects.
>
> The `accessor` is used **only** if used from *Skins, meaning to get it from a Skin, one needs to invoke `get(SkinBase)` method, and it's magically not a null there!
>
> It is perfectly fine to create an instance of ListenerHelper using the constructor. The `accessor` will be null, of course, but it's ok because it will never be used until one calls `get(SkinBase)` ... and see above.
That is my whole point. We have two paths - one for Skin classes and other for generic usage.
Approving the PR as you have added a comment regarding `ListenerHelper` class's current scope being limited to Skins. We may need to revisit the suggestion of having a derived class in future.
-------------
PR: https://git.openjdk.org/jfx/pull/908
More information about the openjfx-dev
mailing list