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.
>>>>
>>>
>

Reply via email to