in chatterbox-twitter/chatterbox-twitter-impl/src/main/java/org/apache/tomee/chatterbox/twitter/adapter/Template.java [192:225]
public String substitute(final Map<String, ?> valuesMap,
final Set<String> encodePathSlashVars,
final boolean allowUnresolved) throws IllegalArgumentException {
if (valuesMap == null) {
throw new IllegalArgumentException("valuesMap is null");
}
final StringBuilder sb = new StringBuilder();
for (final UriChunk chunk : uriChunks) {
if (chunk instanceof Variable) {
final Variable var = (Variable) chunk;
final Object value = valuesMap.get(var.getName());
if (value != null) {
String sval = value.toString();
if (!var.matches(sval)) {
throw new IllegalArgumentException("Value '" + sval + "' does not match variable "
+ var.getName() + " with value "
+ var.getPattern());
}
if (encodePathSlashVars.contains(var.getName())) {
sval = sval.replaceAll("/", "%2F");
}
sb.append(sval);
} else if (allowUnresolved) {
sb.append(chunk);
} else {
throw new IllegalArgumentException("Template variable " + var.getName()
+ " has no matching value");
}
} else {
sb.append(chunk);
}
}
return sb.toString();
}