ClassNameMatcher.java
package io.micronaut.fuzzing.jazzer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
final class ClassNameMatcher {
private final Set<String> exactMatch;
private final List<String> prefixes;
public ClassNameMatcher(Collection<String> patterns) {
exactMatch = new HashSet<>();
prefixes = new ArrayList<>();
for (String pattern : patterns) {
if (pattern.endsWith("*")) {
prefixes.add(pattern.substring(0, pattern.length() - 1));
} else {
exactMatch.add(pattern);
}
}
}
public boolean matches(String className) {
return exactMatch.contains(className) || prefixes.stream().anyMatch(className::startsWith);
}
public boolean isEmpty() {
return exactMatch.isEmpty() && prefixes.isEmpty();
}
}