package jp.vmi.selenium.selenese.mutator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Utilities for mutator.
*/
public final class MutatorUtils {
private MutatorUtils() {
// no operation.
}
private static final Pattern RE = Pattern.compile("\\G\\s*(?:(\\w+)|(\\W))");
/**
* Generate the pattern for testing presence of the code.
*
* @param code code.
* @return pattern for testing.
*/
public static Pattern generatePatternForCodePresence(String code) {
StringBuilder pattern = new StringBuilder(code.length() * 2);
Matcher matcher = RE.matcher(code);
while (matcher.find()) {
if (pattern.length() != 0)
pattern.append("\\s*");
String symbol = matcher.group(1);
if (symbol != null)
pattern.append(symbol);
else
pattern.append(Pattern.quote(matcher.group(2)));
}
return Pattern.compile(pattern.toString());
}
}