While going through my inbox I found this post...
...did anybody comment on this? If so I must have missed
that. Anyway, I think this proposal sounds reasonable...

Other comments?
--
Torsten


<snip/>

>       My current (perhaps naive) opinion is that map:select is implemented
>       wrong, and causes confusion among new cocoon application developers.
>
>       The current implementation converts:
>
>       <map:select type="myselector">
>        <map:when test="this">...</map:when>
>        <map:when test="that">...</map:when>
>       </map:select>
>
>       to:
>
>       if (myselector.select("this"...)) {
>         ...
>       } else if (myselector.select("that"...)) {
>         ...
>       }
>
>       This seems to be contrary to the semantics the xml implies (and
>       can cause unwanted behaviour) :
>
>       I think many might expect generated java code to behave like:
>
>       Object result = myselector.select(...);
>
>       if (result.equals("this")) {
>         ...
>       } else if (result.equals("that")) {
>         ...
>       }
>
>       more like a expanded switch statement.
>
>       ie. the test case is done only once, and its return value is
>       checked multiple times. Not only is this better performance
>       wise, but prevents unwanted behaviour. eg:
>
>       I found this out when writing a login selector.
>
>       I had something like:
>
>       <map:select type="login">
>         <map:when test="permitted">...</>
>         <map:when test="denied">...</>
>         <map:otherwise>...</>
>       </map:select>
>
>       which in practice tried to log denied users in 2 times!
>
>       This means one has to do something like:
>
>       <map:act type="login"/>
>         <map:select type="userstatus">
>           <map:when test="permitted">...</>
>           <map:when test="denied">...</>
>           <map:otherwise>...</>
>         </map:select>>
>       </map:act>
>
>       ie. combination of action and then selector, which I find to be
>       a hack.

<snip/>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to