package xapi.dev.scanner.impl;
import xapi.bytecode.ClassFile;
import xapi.util.api.MatchesValue;
public class MatchesDirectSubclasses implements MatchesValue<ClassFile>{
private final String[] subclasses;
public MatchesDirectSubclasses(String ... subclasses) {
this.subclasses = subclasses;
}
@Override
public boolean matches(ClassFile value) {
if (value.isInterface()) {
for (String iface : value.getInterfaces()) {
for (String subclass : subclasses) {
if (iface.equals(subclass)) {
return true;
}
}
}
} else {
for (String subclass : subclasses) {
if (value.getSuperclass().equals(subclass)) {
return true;
}
}
}
return false;
}
}