@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(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(); }