On Fri, 21 Feb 2025 21:42:03 GMT, John Hendrikx <[email protected]> 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