private static String replaceTokensImpl()

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