package jdepend.knowledge.pattern.impl2.feature.leaf;
import java.util.ArrayList;
import java.util.Collection;
import jdepend.knowledge.pattern.impl2.AbstractFeature;
import jdepend.knowledge.pattern.impl2.FeatureCheckContext;
import jdepend.metadata.JavaClass;
import jdepend.model.JavaClassUnit;
public class HaveSuperFeature extends AbstractFeature {
@Override
protected boolean have(FeatureCheckContext context) {
Collection<JavaClass> superClasses = context.getCurrent().getSupers();
if (superClasses != null && superClasses.size() > 0) {
Collection<JavaClass> interfaces = new ArrayList<JavaClass>();
Collection<JavaClass> supers = new ArrayList<JavaClass>();
for (JavaClass superClass : superClasses) {
if (superClass.isInterface()) {
interfaces.add(superClass);
} else {
supers.add(superClass);
}
}
boolean found = false;
if (interfaces.size() > 0) {
context.setInterfaces(interfaces);
found = true;
}
if (supers.size() > 0) {
context.setSupers(supers);
found = true;
}
return found;
} else {
return false;
}
}
@Override
public String getName() {
return "存在父类";
}
}