package fitnesse.wiki;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import fitnesse.wikitext.parser.VariableSource;
import fitnesse.wikitext.parser.Maybe;
public class VariableTool {
private static final Pattern variablePattern = Pattern.compile("\\$\\{.*\\}");
private final VariableSource variableSource;
public VariableTool(VariableSource variableSource) {
this.variableSource = variableSource;
}
public String replace(String str) {
Matcher m = variablePattern.matcher(str);
while (m.find()) {
String var = m.group();
Maybe<String> value = variableSource.findVariable(var.substring(2, var.length() - 1));
if (!value.isNothing()) {
str = str.replace(var, value.getValue());
}
}
return str;
}
}