/** * @see org.apache.wicket.request.target.coding.IRequestTargetUrlCodingStrategy#encode(org.apache.wicket.IRequestTarget) */ public CharSequence encode(final IRequestTarget requestTarget) { if (matches(requestTarget) == false) { throw new IllegalArgumentException("Unsupported request target type."); } PageParameters parameters = getPageParameters(requestTarget); PageInfo pageInfo = getPageInfo(requestTarget); final AppendingStringBuffer url = new AppendingStringBuffer(40); url.append(getMountPath()); // there are cases where the parameters are null if (parameters != null) { appendParameters(url, parameters); } // check whether we know if the initial URL ended with slash Integer trailingSlashesCount = getOriginalOriginalTrailingSlashesCount(requestTarget); if (trailingSlashesCount != null) { fixTrailingSlashes(url, trailingSlashesCount.intValue()); } return addPageInfo(url.toString(), pageInfo); }
if (path.startsWith(getMountPath())) String remainder = path.substring(getMountPath().length()); if (remainder.length() == 0 || remainder.startsWith("/")) if (remainder.length() > getBeginSeparator().length() + getEndSeparator().length() && remainder.startsWith(getBeginSeparator()) && remainder.endsWith(getEndSeparator())) String substring = remainder.substring(getBeginSeparator().length(), // remainder.length() - getEndSeparator().length()); PageInfo info = PageInfo.parsePageInfo(substring); if (info != null)
/** * Encodes the PageInfo part to the URL * * @param url * @param pageInfo * @return URL */ protected String addPageInfo(final String url, final PageInfo pageInfo) { if (pageInfo != null) { return url + getBeginSeparator() + pageInfo.toString() + getEndSeparator(); } else { return url; } }
String parametersFragment = requestParameters.getPath().substring(getMountPath().length()); PageInfoExtraction extraction = extractPageInfo(parametersFragment); PageParameters parameters = new PageParameters(decodeParameters( extraction.getUrlAfterExtraction(), requestParameters.getParameters())); int originalUrlTrailingSlashesCount = getTrailingSlashesCount(extraction.getUrlAfterExtraction()); boolean redirect = isRedirectOnBookmarkableRequest(); if ((Strings.isEmpty(pageMapName) != true) && alwaysRedirectWhenPageMapIsSpecified()) handleExpiredPage(pageMapName, pageClassRef.get(), originalUrlTrailingSlashesCount, redirect);
/** * Extracts the PageParameters from given request target * * @param requestTarget * @return */ private PageParameters getPageParameters(IRequestTarget requestTarget) { if (requestTarget instanceof BookmarkablePageRequestTarget) { BookmarkablePageRequestTarget target = (BookmarkablePageRequestTarget)requestTarget; return target.getPageParameters(); } else if (requestTarget instanceof ListenerInterfaceRequestTarget) { ListenerInterfaceRequestTarget target = (ListenerInterfaceRequestTarget)requestTarget; Page page = target.getPage(); return getInitialPagePageParameters(page); } else { return null; } }
String parametersFragment = requestParameters.getPath().substring(getMountPath().length()); PageInfoExtraction extraction = extractPageInfo(parametersFragment); PageParameters parameters = new PageParameters(decodeParameters( extraction.getUrlAfterExtraction(), requestParameters.getParameters())); int originalUrlTrailingSlashesCount = getTrailingSlashesCount(extraction.getUrlAfterExtraction()); boolean redirect = isRedirectOnBookmarkableRequest(); if (Strings.isEmpty(pageMapName) != true && alwaysRedirectWhenPageMapIsSpecified()) handleExpiredPage(pageMapName, (Class)pageClassRef.get(), originalUrlTrailingSlashesCount, redirect);
/** * Encodes the PageInfo part to the URL * * @param url * @param pageInfo * @return */ protected String addPageInfo(String url, PageInfo pageInfo) { if (pageInfo != null) { return url + getBeginSeparator() + pageInfo.toString() + getEndSeparator(); } else { return url; } }
/** * Extracts the PageParameters from given request target * * @param requestTarget * @return page parameters */ private PageParameters getPageParameters(final IRequestTarget requestTarget) { if (requestTarget instanceof BookmarkablePageRequestTarget) { BookmarkablePageRequestTarget target = (BookmarkablePageRequestTarget)requestTarget; return target.getPageParameters(); } else if (requestTarget instanceof ListenerInterfaceRequestTarget) { ListenerInterfaceRequestTarget target = (ListenerInterfaceRequestTarget)requestTarget; Page page = target.getPage(); return getInitialPagePageParameters(page); } else { return null; } }
/** * @see org.apache.wicket.request.target.coding.IRequestTargetUrlCodingStrategy#encode(org.apache.wicket.IRequestTarget) */ public CharSequence encode(IRequestTarget requestTarget) { if (matches(requestTarget) == false) { throw new IllegalArgumentException("Unsupported request target type."); } PageParameters parameters = getPageParameters(requestTarget); PageInfo pageInfo = getPageInfo(requestTarget); final AppendingStringBuffer url = new AppendingStringBuffer(40); url.append(getMountPath()); // there are cases where the parameters are null if (parameters != null) { appendParameters(url, parameters); } // check whether we know if the initial URL ended with slash Integer trailingSlashesCount = getOriginalOriginalTrailingSlashesCount(requestTarget); if (trailingSlashesCount != null) { fixTrailingSlashes(url, trailingSlashesCount.intValue()); } return addPageInfo(url.toString(), pageInfo); }
if (Strings.startsWith(path, getMountPath(), caseSensitive)) String remainder = path.substring(getMountPath().length()); if ((remainder.length() == 0) || remainder.startsWith("/")) if ((remainder.length() > getBeginSeparator().length() + getEndSeparator().length()) && remainder.startsWith(getBeginSeparator()) && remainder.endsWith(getEndSeparator())) String substring = remainder.substring(getBeginSeparator().length(), // remainder.length() - getEndSeparator().length()); PageInfo info = PageInfo.parsePageInfo(substring); if (info != null)
int begin = url.lastIndexOf(getBeginSeparator()); PageInfo last = null; String lastSubstring = ""; if ((substring.length() > getBeginSeparator().length() + getEndSeparator().length()) && substring.startsWith(getBeginSeparator()) && substring.endsWith(getEndSeparator())) String pageInfoString = substring.substring(getBeginSeparator().length(), // substring.length() - getEndSeparator().length()); PageInfo info = PageInfo.parsePageInfo(pageInfoString); if (info != null) begin = url.lastIndexOf(getBeginSeparator(), begin - 1);
int begin = url.lastIndexOf(getBeginSeparator()); PageInfo last = null; String lastSubstring = ""; if (substring.length() > getBeginSeparator().length() + getEndSeparator().length() && substring.startsWith(getBeginSeparator()) && substring.endsWith(getEndSeparator())) String pageInfoString = substring.substring(getBeginSeparator().length(), // substring.length() - getEndSeparator().length()); PageInfo info = PageInfo.parsePageInfo(pageInfoString); if (info != null) begin = url.lastIndexOf(getBeginSeparator(), begin - 1);