private void parseKeyValuePairs(String rawKeyValueString, Builder<String, String> builder) { StringBuilder key = new StringBuilder(); StringBuilder value = new StringBuilder(); // sb is a state cursor in this little parser: it always points to one of the // StringBuilders above; this is the one we're currently accumulating characters into. // you can also check the state of the parser by seeing which StringBuilder sb points at. StringBuilder sb = key; for (int i = 0, n = rawKeyValueString.length(); i < n; i++) { final char ch = rawKeyValueString.charAt(i); if (ch == '&') { builder.put(URLPattern.decodeParsingCharacters(key.toString()), URLPattern.decodeParsingCharacters(value.toString())); key = new StringBuilder(); value = new StringBuilder(); sb = key; } else if (ch == '=') { sb = value; } else { sb.append(ch); } } // we've got a key-value pair that still isn't in the map builder builder.put(URLPattern.decodeParsingCharacters(key.toString()), URLPattern.decodeParsingCharacters(value.toString())); }
private void parseKeyValuePairs(String rawKeyValueString, Builder<String, String> builder) { StringBuilder key = new StringBuilder(); StringBuilder value = new StringBuilder(); // sb is a state cursor in this little parser: it always points to one of the // StringBuilders above; this is the one we're currently accumulating characters into. // you can also check the state of the parser by seeing which StringBuilder sb points at. StringBuilder sb = key; for (int i = 0, n = rawKeyValueString.length(); i < n; i++) { final char ch = rawKeyValueString.charAt(i); if (ch == '&') { builder.put(URLPattern.decodeParsingCharacters(key.toString()), URLPattern.decodeParsingCharacters(value.toString())); key = new StringBuilder(); value = new StringBuilder(); sb = key; } else if (ch == '=') { sb = value; } else { sb.append(ch); } } // we've got a key-value pair that still isn't in the map builder builder.put(URLPattern.decodeParsingCharacters(key.toString()), URLPattern.decodeParsingCharacters(value.toString())); }
private String parseValues(String rawURIPath, Builder<String, String> builder) { final String pageName = getPageName(rawURIPath); if (pageName == null) return null; final URLPattern pattern = getURLPattern(pageName); if (pattern.getParamList().size() == 0) return pageName; final MatchResult mr = pattern.getRegex().exec(rawURIPath); for (int keyIndex = 0; keyIndex < pattern.getParamList().size(); keyIndex++) { builder.put(URLPattern.decodeParsingCharacters(pattern.getParamList().get(keyIndex)), URLPattern .decodeParsingCharacters(mr.getGroup(keyIndex + 1))); } return pageName; }
private String parseValues(String rawURIPath, Builder<String, String> builder) { final String pageName = getPageName(rawURIPath); if (pageName == null) return null; final URLPattern pattern = getURLPattern(pageName); if (pattern.getParamList().size() == 0) return pageName; final MatchResult mr = pattern.getRegex().exec(rawURIPath); for (int keyIndex = 0; keyIndex < pattern.getParamList().size(); keyIndex++) { builder.put(URLPattern.decodeParsingCharacters(pattern.getParamList().get(keyIndex)), URLPattern .decodeParsingCharacters(mr.getGroup(keyIndex + 1))); } return pageName; }
throw new PageNotFoundException("Invalid URL \"" + URLPattern.decodeParsingCharacters(url) + "\" could not be mapped to any page.");
throw new PageNotFoundException("Invalid URL \"" + URLPattern.decodeParsingCharacters(url) + "\" could not be mapped to any page.");