[ 
https://issues.apache.org/jira/browse/WICKET-6536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Grigorov resolved WICKET-6536.
-------------------------------------
      Assignee: Martin Grigorov  (was: Sven Meier)
    Resolution: Won't Fix

Closing as "Won't fix" because this change would lead to different need for 
casting.

Very often this method is used not to find `AjaxButton` (or other specific 
Component) but MyInterface, i.e. a business interface class that some 
components may implement. In the visit() method the results are usually casted 
to Component/MarkupContainer and their getId(), isVisible(), etc. methods are 
used.

With the proposed change the type would be MyInterface instead of Object but 
the application code will still need to cast to Component most of the time.

I don't see a compelling reason to break the API here. 

> Add generic to MarkupContainer#visitChildren
> --------------------------------------------
>
>                 Key: WICKET-6536
>                 URL: https://issues.apache.org/jira/browse/WICKET-6536
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 8.0.0-M8
>            Reporter: Kamil
>            Assignee: Martin Grigorov
>            Priority: Major
>
> currently MarkupContainer#visitChildren has signature:
> {code:java}
> final <S extends Component, R> R visitChildren(final Class<?> clazz, final 
> IVisitor<S, R> visitor){code}
> while im my opinion it should have:
> {code:java}
> final <S extends Component, R> R visitChildren(final Class<S> clazz, final 
> IVisitor<S, R> visitor){code}
> Why force user to do class cast while we already know which class we pass to 
> the method?



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to