* @return the encoded url
*/
protected CharSequence encode(RequestCycle requestCycle,
IListenerInterfaceRequestTarget requestTarget)
{
final RequestListenerInterface rli = requestTarget.getRequestListenerInterface();
// Start string buffer for url
final AppendingStringBuffer url = new AppendingStringBuffer(64);
url.append('?');
url.append(INTERFACE_PARAMETER_NAME);
url.append('=');
// Get component and page for request target
final Component component = requestTarget.getTarget();
final Page page = component.getPage();
// Add pagemap
final IPageMap pageMap = page.getPageMap();
if (!pageMap.isDefault())
{
url.append(pageMap.getName());
}
url.append(Component.PATH_SEPARATOR);
// Add path to component
url.append(component.getPath());
url.append(Component.PATH_SEPARATOR);
// Add version
final int versionNumber = component.getPage().getCurrentVersionNumber();
if (!rli.getRecordsPageVersion())
{
url.append(Page.LATEST_VERSION);
}
else if (versionNumber > 0)
{
url.append(versionNumber);
}
url.append(Component.PATH_SEPARATOR);
// Add listener interface
final String listenerName = rli.getName();
if (!IRedirectListener.INTERFACE.getName().equals(listenerName))
{
url.append(listenerName);
}
url.append(Component.PATH_SEPARATOR);