[ 
https://issues.apache.org/jira/browse/PLUTO-589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846967#action_12846967
 ] 

David Jencks commented on PLUTO-589:
------------------------------------

I think this is a limitation of EasyMock and a good design on the part of 
pluto.  I don't really understand what the problem is.  If I change the types 
in pluto's FilterType implementation of Filter to the interfaces rather than 
concrete types, e.g.  lines 76 and 197 InitParamType >> InitParam everything is 
fine.  The point of this kind of <? extends interface> is so concrete 
implementations can use their own specialized concrete types internally without 
having to cast them every time they are used, whereas the framework using the 
concrete implementation can use the interface.  This seems to me like exactly 
the situation <? extends interface> was designed for.  Am I missing something?

> alter return types in org.apache.pluto.container.om.portlet.Filter?
> -------------------------------------------------------------------
>
>                 Key: PLUTO-589
>                 URL: https://issues.apache.org/jira/browse/PLUTO-589
>             Project: Pluto
>          Issue Type: Improvement
>          Components: portlet container
>    Affects Versions: 2.0.0
>            Reporter: Nicholas Blair
>
> The return type for the getInitParams() method in 
> org.apache.pluto.container.om.portlet.Filter is List<? extends InitParam>.
> This presents an awkward scenario, one particularly present when creating 
> unit tests for a FilterChain implementation and attempting to create mock 
> Filter implementations.
> The requirement that getInitParams return a class that implements an 
> interface _that extends_ InitParam. You cannot simply return a class that 
> implements InitParam; you would need to define your own custom interface that 
> extends InitParam, and implement your custom interface.
> If the InitParam interface satisfactorily defines what's needed, the 
> getInitParams return should be a class that simply implements InitParam.
> Is it possible to modify the return value for getInitParams to simply?
>  List<InitParam> 
> This also applies to the getDescriptions and getDisplayNames method in the 
> same class; both have return values of List<? extends someinterface>, it 
> should simply be List<interface>.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to