package japicmp.filter;
import javassist.CtClass;
import java.util.regex.Pattern;
public class JavaDocLikeClassFilter implements ClassFilter {
private final Pattern pattern;
private final String className;
public JavaDocLikeClassFilter(String className) {
int indexOfSharp = className.indexOf('#');
if (indexOfSharp >= 0) {
className = className.substring(0, indexOfSharp);
}
this.className = className;
String regEx = className.replace(".", "\\.");
regEx = regEx.replace("*", ".*");
regEx = regEx.replace("$", "\\$");
regEx += "(\\$.*)?";
pattern = Pattern.compile(regEx);
}
@Override
public String toString() {
return this.className;
}
@Override
public boolean matches(CtClass ctClass) {
String name = ctClass.getName();
return pattern.matcher(name).matches();
}
}