Hi Sven, yes, I want to work on the proposals:
- to not force IDetachable to IModel - IModel without the functional interface annotation - named LambdaModel subclasses and a better name for this class >IIRC Michael Mosmann tried to work on something similar but it never quite worked out. Indeed it looks a big change and I wouldn't propose it to Wicket 8, but yes, I would like to give it a try in the future. Pedro Santos On Mon, Mar 27, 2017 at 1:50 PM, Sven Meier <[email protected]> wrote: > Hi Pedro, > > >Why don't we make AbstractReadyOnlyModel the superinterface of IModel > > IIRC Michael Mosmann tried to work on something similar but it never quite > worked out. > > Do you want to work on a proposal? > > Before you invest too much time into this: I'm pretty sure most devs won't > be in favor of doing another round of IModel refactoring in Wicket 8 > because of semantics. > > Regards > Sven > > > > On 27.03.2017 01:39, Pedro Santos wrote: > >> -0 >> >> I see no good reason for IModel to extend from IDetachable. Users should >> be >> able to add this interface at their will. >> >> If IModel were a @FunctionalInterface, then you wouldn't need something >>> like >>> >> a SupplierModel; you could just use a lambda directly: >> >> IModel, as it's now, isn't a functional interface. >> >> Then maybe just make IModel#setObject() default too .. >>> >> There's no default implementation for IModel#setObject(). The one that was >> added is as much semantically wrong as to say IModel is a functional >> interface. >> >> Proposal: >> >> Why don't we make AbstractReadyOnlyModel the superinterface of IModel >> instead of to keep it as an abstract adaptor for IModel? So we would have >> a >> semantically correct functional interface. >> >> >> >> Pedro Santos >> >> On Tue, Oct 6, 2015 at 6:42 PM, Martin Grigorov <[email protected]> >> wrote: >> >> Ugh, right! >>> >>> Then maybe just make IModel#setObject() default too ... >>> We will experiment! :) >>> >>> Martin Grigorov >>> Wicket Training and Consulting >>> https://twitter.com/mtgrigorov >>> >>> On Tue, Oct 6, 2015 at 11:27 PM, Michael Mosmann <[email protected]> >>> wrote: >>> >>> .. @IReadOnlyModel: i hope, it will be easier to change then the last >>>> >>> time >>> >>>> i tried it. Watch out for component default model stuff... >>>> >>>> :) >>>> >>>> Am 6. Oktober 2015 22:54:37 MESZ, schrieb Martin Grigorov < >>>> [email protected]>: >>>> >>>>> On Tue, Oct 6, 2015 at 10:43 PM, Andrew Geery <[email protected]> >>>>> wrote: >>>>> >>>>> If IModel were a @FunctionalInterface, then you wouldn't need >>>>>> >>>>> something >>>>> >>>>>> like a SupplierModel; you could just use a lambda directly: >>>>>> >>>>>> new Label("label", () -> "The current time is " + LocalDate.now()); >>>>>> >>>>>> This looks good indeed. >>>>> It seems we will add IReadOnlyModel soon! >>>>> >>>>> >>>>> And since IModel is Serializable, the lambda will be too, without >>>>>> >>>>> having to >>>>> >>>>>> have an artificial interface that is both Serializable & a Supplier. >>>>>> >>>>>> Thanks >>>>>> Andrew >>>>>> >>>>>> On Tue, Oct 6, 2015 at 4:21 PM, Martin Grigorov >>>>>> >>>>> <[email protected]> >>>>> >>>>>> wrote: >>>>>> >>>>>> Same for IRequestHandler#detach() >>>>>>> >>>>>>> Martin Grigorov >>>>>>> Wicket Training and Consulting >>>>>>> https://twitter.com/mtgrigorov >>>>>>> >>>>>>> On Mon, Oct 5, 2015 at 10:42 PM, Martijn Dashorst < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>> Should we use an empty default implementation for IModel#detach? >>>>>>>> >>>>>>>> >>>>>>>> public class IModel<T> extends IDetachable >>>>>>>> { >>>>>>>> ... >>>>>>>> >>>>>>>> @Override >>>>>>>> default void detach() >>>>>>>> { >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> This won't break existing applications, but might make it a bit >>>>>>>> >>>>>>> easier >>>>> >>>>>> on the eyes to implement IModel directly. >>>>>>>> >>>>>>>> I'm not in favor of applying the default method to IDetachable, >>>>>>>> because that would defeat the interface's purpose IMO. >>>>>>>> >>>>>>>> WDYT? >>>>>>>> >>>>>>>> Martijn >>>>>>>> >>>>>>>> -- >>>> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail >>>> gesendet. >>>> >>> >
