> 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