> Foo f = someObject.adaptTo(RequireAdapter<Foo>.class));

this would still require an "unwrapping" of the object out of the 
RequireAdapter<Foo> instance.

> Foo f = someObject.adaptTo(RequireAdapter.for(Foo.class));

this looks interesting, and does not need unwrapping if the return value is the 
input class.
i assume it could be implemented using a ThreadLocal or similar as well?

stefan


>-----Original Message-----
>From: Konrad Windszus [mailto:konra...@gmx.de]
>Sent: Tuesday, July 01, 2014 11:58 AM
>To: dev@sling.apache.org
>Cc: Bertrand Delacretaz
>Subject: Re: adaptTo and results ....
>
>I like that approach. It is backwards-compatible and allows the developers to
>decide whether they want to check for null or to rely on exceptions.
>The AdapterManagerImpl indeed would need to deal with such a parametrisation
>and in addition the javadocs would need to be adjusted to make it clear that
>AdapterFactories may throw RuntimeExceptions.
>Those exceptions should be caught by the AdapterManagerImpl when the
>RequireAdapter was not requested and in the other case just passed along.
>
>
>On 01 Jul 2014, at 09:44, Bertrand Delacretaz <bdelacre...@apache.org> wrote:
>
>> On Tue, Jul 1, 2014 at 9:41 AM, Bertrand Delacretaz
>> <bdelacre...@apache.org> wrote:
>>> ...how about this:
>>>
>>>  Foo f = someObject.adaptTo(RequireAdapter.for(Foo.class));
>>
>> Actually, rereading SLING-3714, this can be made simpler with generics
>>
>>  Foo f = someObject.adaptTo(RequireAdapter<Foo>.class));
>>
>> where RequireAdapter causes AdapterManagerImpl to wrap the adapters to
>> throw an exception if adaption returns null.
>>
>> -Bertrand

Reply via email to