package jdepend.knowledge.pattern.impl2.feature;
import jdepend.knowledge.pattern.impl2.AbstractFeature;
import jdepend.knowledge.pattern.impl2.FeatureCheckContext;
import jdepend.metadata.InvokeItem;
import jdepend.metadata.Method;
public class ProxyFeature extends AbstractFeature {
@Override
protected boolean have(FeatureCheckContext context) {
if (context.getOverrideMethods() == null || context.getSuperOtherSubClasses() == null) {
return false;
} else {
for (Method method : context.getOverrideMethods().keySet()) {
for (Method superMethod : context.getOverrideMethods().get(method)) {
for (InvokeItem item : method.getInvokeItems()) {
if (context.getSuperOtherSubClasses().contains(item.getCallee().getJavaClass())
&& item.math2(superMethod)) {
this.setPatternInfo(item.getCallee().getName());
return true;
}
}
}
}
return false;
}
}
@Override
public String getName() {
return "在覆盖的方法中调用了其他子类的覆盖方法";
}
}