in chatterbox-twitter/chatterbox-twitter-impl/src/main/java/org/apache/tomee/chatterbox/twitter/adapter/Template.java [114:159]
public boolean match(final String uri, final Map<String, List<String>> templateVariableToValue) {
if (uri == null) {
return (templateRegexPattern == null);
}
if (templateRegexPattern == null) {
return false;
}
Matcher m = templateRegexPattern.matcher(uri);
if (!m.matches()) {
return false;
}
// Assign the matched template values to template variables
final int groupCount = m.groupCount();
int i = 1;
for (final String name : variables) {
while (i <= groupCount) {
final String value = m.group(i++);
if ((value == null || value.length() == 0 && i < groupCount)
&& variables.size() + 1 < groupCount) {
continue;
}
if (templateVariableToValue.get(name) == null) {
templateVariableToValue.put(name, new ArrayList<>());
}
templateVariableToValue.get(name).add(value);
break;
}
}
// The right hand side value, might be used to further resolve
// sub-resources.
String finalGroup = m.group(groupCount);
if (finalGroup == null) {
finalGroup = "";
}
templateVariableToValue.put(FINAL_MATCH_GROUP, Collections.singletonList(finalGroup));
return true;
}