RFR: 8290310: ChangeListener events are incorrect or misleading when a nested change occurs [v5]
Nir Lisker
nlisker at openjdk.org
Wed Mar 12 01:49:02 UTC 2025
On Fri, 21 Feb 2025 21:42:03 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:
>> modules/javafx.base/src/main/java/com/sun/javafx/binding/ListenerManagerBase.java line 41:
>>
>>> 39: * @param <I> the type of the instance providing listener data
>>> 40: */
>>> 41: public abstract class ListenerManagerBase<T, I extends ObservableValue<? extends T>> {
>>
>> Is this a class and not an interface because of the need for `protected` methods?
>
> I think I extracted this when I discovered that I needed two implementations (caching one and one that doesn't need caching, to save more memory).
>
> Looking at it now (over a year later) I suppose it could also be an interface. There is no risk that any of this gets exposed as the property classes will all create a private class to implement the abstract methods.
>
> It can be changed at any time as it is internal. If we want to make it an interface, I'm going to need to think of a good name for it (`ListenerDataProvider`, `ListenerDataStore`, ... )
Just making sure you didn't forget to consider this. Fine to leave as is also.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1081#discussion_r1990401323
More information about the openjfx-dev
mailing list