@Override public final boolean matchesRequest(PlaceRequest request) { for (String nameToken : nameTokens) { if (request.matchesNameToken(nameToken)) { return true; } } return false; }
@Override public String toPlaceToken(PlaceRequest placeRequest) throws TokenFormatException { return placeTokenToUnescapedString(placeRequest); }
/** * 'Copy' constructor for initializing a new {@link Builder} with data from an existing * {@link PlaceRequest}, e.g. * <pre> * <code> * PlaceRequest request = placeManager.getCurrentPlaceRequest(); * PlaceRequest newRequest = new PlaceRequest.Builder(request).with("newParameter", "newValue").build(); * </code> * </pre> */ public Builder(PlaceRequest request) { nameToken = request.nameToken; with(request.params); }
@Override public PlaceRequest toPlaceRequest(final String placeToken) throws TokenFormatException { /* * To support the native GWT history as well as HTML pushstate a slash is added when needed. */ if (!placeTokenIsValid(placeToken)) { return toPlaceRequest("/" + placeToken); } final int split = placeToken.indexOf('?'); final String place = (split == -1) ? placeToken : placeToken.substring(0, split); final String query = (split == -1) ? StringUtils.EMPTY : placeToken.substring(split + 1); final RouteMatcher matcher = new RouteMatcher(place); final RouteMatch match = matcher.allMatches.isEmpty() ? new RouteMatch(place, 0, null) : matcher.allMatches.last(); match.parameters = decodeEmbeddedParams(match.parameters); match.parameters = parseQueryString(query, match.parameters); return new PlaceRequest.Builder().nameToken(match.route).with(match.parameters).build(); }
@Override public PlaceRequest toPlaceRequest(String placeToken) throws TokenFormatException { /* * To support the native GWT history as well as HTML pushstate a slash is added when needed. */ if (!placeTokenIsValid(placeToken)) { return toPlaceRequest("/" + placeToken); } int split = placeToken.indexOf('?'); String place = (split != -1) ? placeToken.substring(0, split) : placeToken; String query = (split != -1) ? placeToken.substring(split + 1) : ""; RouteMatcher matcher = new RouteMatcher(place); RouteMatch match = (!matcher.allMatches.isEmpty()) ? matcher.allMatches.last() : new RouteMatch(place, 0, null); match.parameters = decodeEmbeddedParams(match.parameters); match.parameters = parseQueryString(query, match.parameters); return new PlaceRequest.Builder().nameToken(match.route).with(match.parameters).build(); }
public static PlaceRequest get(String nameToken) { if (!instances.containsKey(nameToken)) { instances.put(nameToken, new PlaceRequest.Builder().nameToken(nameToken).build()); } return instances.get(nameToken); }
/** * Converts a place token to an unescaped string. If the name token or the parameters contain any * of the separator symbols, they will be escaped with our custom escaping mechanism. * * @param placeRequest The place request to convert. * @return The unescaped string for the place token corresponding to that place request. * @throws TokenFormatException if there is an error converting. */ private String placeTokenToUnescapedString(PlaceRequest placeRequest) throws TokenFormatException { StringBuilder out = new StringBuilder(); out.append(customEscape(placeRequest.getNameToken())); Set<String> params = placeRequest.getParameterNames(); if (params != null) { for (String name : params) { out.append(paramSeparator).append(customEscape(name)).append(valueSeparator).append( customEscape(placeRequest.getParameter(name, null))); } } return out.toString(); }
@Override public PlaceRequest getCurrentPlaceRequest() { if (placeHierarchy.size() > 0) { return placeHierarchy.get(placeHierarchy.size() - 1); } else { return new PlaceRequest.Builder().build(); } }
@Override public void prepareFromRequest(PlaceRequest request) { this.selectedFederation = request.getParameter("name", null); super.prepareFromRequest(request); }
public PlaceRequest build() { return new PlaceRequest(nameToken, params); } }
public Builder with(Map<String, String> params) { if (params != null) { lazyInitializeParamMap(); this.params.putAll(params); } return this; }
@Override public String toHistoryToken(final List<PlaceRequest> placeRequestHierarchy) throws TokenFormatException { assert !placeRequestHierarchy.isEmpty() : "Expected a place hierarchy with one or more places."; return toPlaceToken(placeRequestHierarchy.get(placeRequestHierarchy.size() - 1)); }
@Override public String buildHistoryToken(PlaceRequest request) { return tokenFormatter.toPlaceToken(request); }
@Override public String toHistoryToken(List<PlaceRequest> placeRequestHierarchy) throws TokenFormatException { assert placeRequestHierarchy.size() == 1 : "Expected a place hierarchy with exactly one place."; return toPlaceToken(placeRequestHierarchy.get(0)); }
@Override public PlaceRequest toPlaceRequest(String placeToken) throws TokenFormatException { return unescapedStringToPlaceRequest(urlUtils.decodeQueryString(placeToken)); }
@Override public PlaceRequest toPlaceRequest(final String placeToken) throws TokenFormatException { /* * To support the native GWT history as well as HTML pushstate a slash is added when needed. */ if (!placeTokenIsValid(placeToken)) { return toPlaceRequest("/" + placeToken); } final int split = placeToken.indexOf('?'); final String place = (split == -1) ? placeToken : placeToken.substring(0, split); final String query = (split == -1) ? StringUtils.EMPTY : placeToken.substring(split + 1); final RouteMatcher matcher = new RouteMatcher(place); final RouteMatch match = matcher.allMatches.isEmpty() ? new RouteMatch(place, 0, null) : matcher.allMatches.last(); match.parameters = decodeEmbeddedParams(match.parameters); match.parameters = parseQueryString(query, match.parameters); return new PlaceRequest.Builder().nameToken(match.route).with(match.parameters).build(); }
@Override public void prepareFromRequest(PlaceRequest request) { super.prepareFromRequest(request); textToServer = request.getParameter(TokenParameters.TEXT_TO_SERVER, null); }
public Builder with(String name, String value) { lazyInitializeParamMap(); if (value != null) { this.params.put(name, value); } return this; }
@Override public String toHistoryToken(final List<PlaceRequest> placeRequestHierarchy) throws TokenFormatException { assert !placeRequestHierarchy.isEmpty() : "Expected a place hierarchy with one or more places."; return toPlaceToken(placeRequestHierarchy.get(placeRequestHierarchy.size() - 1)); }