in src/main/java/org/apache/netbeans/nbpackage/StringUtils.java [106:128]
private static String replaceTokensImpl(String input,
Function<String, String> tokenSource,
boolean lenient) {
var matcher = TOKEN_PATTERN.matcher(input);
var sb = new StringBuilder();
while (matcher.find()) {
var token = matcher.group(1);
var replacement = tokenSource.apply(token);
if (replacement == null) {
if (lenient) {
replacement = "${" + token + "}";
} else {
var msg = MessageFormat.format(
NBPackage.MESSAGES.getString("message.invalidtoken"),
token);
throw new IllegalArgumentException(msg);
}
}
matcher.appendReplacement(sb, Matcher.quoteReplacement(replacement));
}
matcher.appendTail(sb);
return sb.toString();
}