/** * Returns whether the Url is a CSS data uri. Data uris start with '{@literal data:}'. * * @return <code>true</code> if Url starts with 'data:', <code>false</code> otherwise. */ public boolean isDataUrl() { return (getProtocol() != null && getProtocol().equals("data")) || (!getSegments().isEmpty() && getSegments() .get(0).startsWith("data")); }
/** * Returns whether the Url is context absolute. Absolute Urls start with a '{@literal /}'. * * @return <code>true</code> if Url starts with the context path, <code>false</code> otherwise. */ public boolean isContextAbsolute() { return !contextRelative && !isFull() && !getSegments().isEmpty() && Strings.isEmpty(getSegments().get(0)); }
/** * Returns whether the Url is context absolute. Absolute Urls start with a '{@literal /}'. * * @return <code>true</code> if Url starts with the context path, <code>false</code> otherwise. */ public boolean isContextAbsolute() { return !contextRelative && !isFull() && !getSegments().isEmpty() && Strings.isEmpty(getSegments().get(0)); }
/** * Returns whether the Url is a CSS data uri. Data uris start with '{@literal data:}'. * * @return <code>true</code> if Url starts with 'data:', <code>false</code> otherwise. */ public boolean isDataUrl() { return (getProtocol() != null && getProtocol().equals("data")) || (!getSegments().isEmpty() && getSegments() .get(0).startsWith("data")); }
private boolean isInternalWicket(Request request) { Url url = request.getUrl(); if (url.getSegments().size() > 0) { if (url.getSegments().get(0).equals((Application.get().getMapperContext().getNamespace()))) { // starts with wicket namespace - is an internal wicket url return true; } } return false; }
@Override public int getCompatibilityScore(Request request) { if (isInternalWicket(request)) { return 0; } // bluff we can parse all segments - makes sure we run first return request.getUrl().getSegments().size(); }
@Override protected UrlInfo parseRequest(Request request) { if(!isHomePage && !isStartupPage) return super.parseRequest(request); // get canonical url final Url url = request.getUrl().canonical(); if (url.getSegments().size() != 0) { // if this is the home page, it must have either no segments, or the first must be workspace if(!url.getSegments().get(0).equalsIgnoreCase("workspace")) return null; } return super.parseRequest(request); }
@Override protected Url buildUrl(UrlInfo info) { Url url = new Url(); url.getSegments().add(getContext().getNamespace()); url.getSegments().add(getContext().getBookmarkableIdentifier()); url.getSegments().add(info.getPageClass().getName()); encodePageComponentInfo(url, info.getPageComponentInfo()); return encodePageParameters(url, info.getPageParameters(), pageParametersEncoder); }
@Override public Url getClientUrl() { Url baseUrl = new Url(url.getSegments(), Collections.<QueryParameter> emptyList()); baseUrl.setContextRelative(url.isContextRelative()); return baseUrl; }
@Override protected Url buildUrl(UrlInfo info) { Url url = new Url(); url.getSegments().add(getContext().getNamespace()); url.getSegments().add(getContext().getBookmarkableIdentifier()); url.getSegments().add(info.getPageClass().getName()); encodePageComponentInfo(url, info.getPageComponentInfo()); return encodePageParameters(url, info.getPageParameters(), pageParametersEncoder); }
@Override public Url getClientUrl() { Url baseUrl = new Url(url.getSegments(), Collections.<QueryParameter> emptyList()); baseUrl.setContextRelative(url.isContextRelative()); return baseUrl; }
/** * Matches only when there are no segments/indexed parameters * * @see AbstractBookmarkableMapper#parseRequest(org.apache.wicket.request.Request) */ @Override protected UrlInfo parseRequest(Request request) { // get canonical url final Url url = request.getUrl().canonical(); if (url.getSegments().size() > 0) { // home page cannot have segments/indexed parameters return null; } return super.parseRequest(request); }
/** * {@inheritDoc} */ @Override public int hashCode() { return Objects.hashCode(getSegments(), getQueryParameters(), getFragment()); }
@Override public Url encodePageParameters(PageParameters params) { Args.notNull(params, "params"); Args.isTrue(params.getIndexedCount() == 0, "This encoder does not support indexed page parameters. Specified parameters: %s", params); Url url = new Url(); for (PageParameters.NamedPair pair : params.getAllNamed()) { url.getSegments().add(pair.getKey()); url.getSegments().add(pair.getValue()); } return url; }
/** * {@inheritDoc} */ @Override public int hashCode() { return Objects.hashCode(getSegments(), getQueryParameters(), getFragment()); }
@Override public String getPrefixToContextPath() { PrependingStringBuffer buffer = new PrependingStringBuffer(); Url filterPrefixUrl = Url.parse(filterPrefix, getCharset()); for (int i = 0; i < filterPrefixUrl.getSegments().size() - 1; ++i) { buffer.prepend("../"); } return buffer.toString(); }
@Override public String getPrefixToContextPath() { PrependingStringBuffer buffer = new PrependingStringBuffer(); Url filterPrefixUrl = Url.parse(filterPrefix, getCharset()); for (int i = 0; i < filterPrefixUrl.getSegments().size() - 1; ++i) { buffer.prepend("../"); } return buffer.toString(); }
@Override public String renderRelativeUrl(Url url) { if (url.isFull()) { return url.toString(StringMode.FULL); } else if (url.getSegments().isEmpty()) { Url absolute = copy(url); absolute.prependLeadingSegments(Lists.newArrayList("", "")); return absolute.toString(); } else if (Strings.isEmpty(url.getSegments().get(0))) { return url.toString(); } else { Url absolute = copy(url); absolute.prependLeadingSegments(Lists.newArrayList("")); return absolute.toString(); } }
/** * Checks whether the passed Url can be handled by this mapper * * @param url * the Url to check * @return {@code true} - if the Url can be handled, {@code false} - otherwise */ protected boolean canBeHandled(final Url url) { List<String> segments = url.getSegments(); return (segments.size() >= 4 && urlStartsWith(url, getContext().getNamespace(), getContext().getResourceIdentifier()) && Strings.isEmpty(segments.get(3)) == false ); } }
/** * Checks whether the passed Url can be handled by this mapper * * @param url * the Url to check * @return {@code true} - if the Url can be handled, {@code false} - otherwise */ protected boolean canBeHandled(final Url url) { List<String> segments = url.getSegments(); return (segments.size() >= 4 && urlStartsWith(url, getContext().getNamespace(), getContext().getResourceIdentifier()) && Strings.isEmpty(segments.get(3)) == false ); } }