Let's see what others think but I'd suggest to create a ticket for 8.x and
test the change once we start on it.

Martin Grigorov
Freelancer, available for hire!
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Mar 25, 2015 at 7:11 PM, Sven Meier <[email protected]> wrote:

> Hi Martin,
>
> >1. I'd prefer if there are no more API changes until we start with 8.x.
>
> sure, we can postpone the change to 8.x (if we agree to do it)
>
> >2. Removing the generics here will introduce casting wherever
> #convertToObject() is needed to be used.
> >So we will move the problem to the callers
>
> That's the point I was trying to make: There aren't many callers of that
> method, mostly framework code only.
> As a Wicket user I encounter the opposite regularly: overriding
> #getConverter() to provide a custom converter.
>
> Regards
> Sven
>
>
> Am 25.03.2015 um 18:04 schrieb Martin Grigorov:
>
>  Hi Sven,
>>
>> 1. I'd prefer if there are no more API changes until we start with 8.x.
>> 2. Removing the generics here will introduce casting wherever
>> #convertToObject() is needed to be used. So we will move the problem to
>> the
>> callers. I am not sure the benefit is big. But I may be wrong. I need to
>> see the diff of such change.
>>
>> Martin Grigorov
>> Freelancer, available for hire!
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Wed, Mar 25, 2015 at 5:28 PM, Sven Meier <[email protected]> wrote:
>>
>>  Hi all,
>>>
>>> currently IConverterLocator#getConverter() declares a generic parameter
>>> <C>.
>>>
>>> But very few places in Wicket call this method and even less benefit from
>>> the generic return type.
>>>
>>> Providing a custom converter for a component is rather clumsy:
>>>
>>>      public <C> IConverter<C> getConverter(Class<C> clazz)
>>>      {
>>>          if (Date.class.isAssignableFrom(clazz))
>>>          {
>>>              @SuppressWarnings("unchecked")
>>>              IConverter<C> result = (IConverter<C>)converter;
>>>              return result;
>>>          }
>>>          else
>>>          {
>>>              return super.getConverter(clazz);
>>>          }
>>>      }
>>>
>>> Note that this code doesn't benefit at all from the generic parameter,
>>> even worse the converter has to be cast and the unchecked warning has to
>>> be
>>> suppressed.
>>>
>>> I propose to remove the generic parameter from the method, that would
>>> make
>>> it easier for user code to override this method.
>>> WDYT?
>>>
>>> Have fun
>>> Sven
>>>
>>>
>

Reply via email to