package jdepend.knowledge.pattern.impl2.feature;
import jdepend.knowledge.pattern.impl2.AbstractFeature;
import jdepend.knowledge.pattern.impl2.FeatureCheckContext;
import jdepend.metadata.JavaClass;
import jdepend.metadata.Method;
public class PrototypeFeature extends AbstractFeature {
@Override
protected boolean have(FeatureCheckContext context) {
if (context.getReturnIsSuperOverrideMethods() != null) {
for (Method method : context.getReturnIsSuperOverrideMethods()) {
if (method.getReturnTypes().size() == 1) {
for (JavaClass javaClass : method.getReturnClassTypes()) {
if (context.getCurrent().getSupers().contains(javaClass)) {
this.setPatternInfo(method.getName());
return true;
}
}
}
}
return false;
} else {
return false;
}
}
@Override
public String getName() {
return "覆盖了父类的方法返回值类型是自己的父类";
}
}