[ 
https://issues.apache.org/jira/browse/WICKET-2101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673448#action_12673448
 ] 

Dominik Drzewiecki commented on WICKET-2101:
--------------------------------------------

Hmm. what do you suggest then? IMHO, it was only the (String,Page) constructor 
that was evil. For many cases PageLink (used wisely) will suffice. 
Right now many applications make use of PageLink. Should they be rewritten (for 
the sake of being future-proof) to use BookmarkablePageLink instead? It seems 
to me that if for some reason PageLink  has been left in 1.4, the rest of the 
framework cannot act as if it had been scraped. Therefore it would be nice if 
the PageLink provided the very same interface (or its subset) as the class that 
is to supersede it. And the PageLink is lacking getPageClass() method. Please 
provide it as specified above, as without it there's no reasonable way (i.e. 
not offending OOP principles) of achieving what is an aim of WICKET-2089. 

> PageLink is inherently non extendable
> -------------------------------------
>
>                 Key: WICKET-2101
>                 URL: https://issues.apache.org/jira/browse/WICKET-2101
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4-RC2
>            Reporter: Dominik Drzewiecki
>             Fix For: 1.4-RC3
>
>         Attachments: link.patch
>
>
> Due to the fact that there is no accessor provided for the private final 
> IPageLink pageLink, there's no way of writing subclasses that would be aware 
> of the pages they are linking to. My particular case is closely related to 
> the annotation based authorization and an enhancement proposal 
> http://issues.apache.org/jira/browse/WICKET-2089. Now, provided that this 
> enhancement (that otherwise needs more look into) won't make it into 
> wicket/wicket-auth-roles (though I am more than convinced that it should), 
> and I would have to put the proposed IAuthorisationStrategy implementation 
> outside core wicket, I would also have to write (copy&paste) my own PageLink 
> that exposes its pageLink member in order to retrieve the page class it is 
> referring to and substitute all occurernces of 
> org.apache.wicket.markup.html.link.PageLink with it in my projects, so that 
> my IAuthorisationStrategy implementation can retrieve the page class the the 
> link is pointing to. Please note, that BokmarkablePageLink, which also is 
> constructed with Page class *does* expose page class identity via public 
> final Class<? extends Page> getPageClass().
> I suggest that for the sake of keeping the API clean and coherent the method 
> with the same signature as in BookmarkablePageLink should be added to the 
> PageLink.
>       public Class<? extends Page> getPageClass()
>       {
>               return pageLink.getPageIdentity();
>       }
> Another question arises - why BookmarkablePageLink is not a subclass of 
> PageLink and why class resolution for those classes differs so much. Wouldn't 
> it be easier to keep the class reference in the BookmarkablePageClass rather 
> than its textual representation and skip all this mumbo-jumbo class 
> resolution. But this is quite another story and OT for this issue.

-- 
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