Re: Re: reasonable syntax for multi-adaptation

Jim Fulton <[email protected]>
Newsgroups gmane.comp.web.zope.zope3
Message-ID <[email protected]>
On Sep 26, 2007, at 3:37 PM, Dieter Maurer wrote:

> Jim Fulton wrote at 2007-9-26 15:10 -0400:
>> ...
>>> Jim Fulton wrote at 2007-9-26 11:29 -0400:
>>>> ...
>>>>>     IFoo(x)
>>>>>     IBar(multi=(x,y))
>>>>
>>>> Actually, that is not the case.  If x already provides IFoo,  
>>>> then in
>>>> the first case, the existing object is retuned. Nothing is
>>>> instantiated.  OTOH, in:
>>>>
>>>>   getMultiAdapter([x], IFoo)
>>>>
>>>> or
>>>>   getAdapter(x, IFoo)
>>>>
>>>> either there is an error or some factory will be called.  x  
>>>> won't be
>>>> returned unless the factory happens to return it.
>>>
>>> Is this not an irrelevant implementation detail?
>>
>> No, the specified behavior is different.
>
> Hm. But "getAdapter" and "getMultiAdapter" may return "x" as well
> (when the factory decides to do this).
>
> Thus, why is it relevant?

Because they don't take into account what x already provides.  They  
will always call some factory.   Also, they never call __conforms__.

Jim

--
Jim Fulton
Zope Corporation
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.