package kr.ac.snu.selab.soot.graph.collectors;
import java.util.Set;
import kr.ac.snu.selab.soot.graph.Graph;
import kr.ac.snu.selab.soot.graph.GraphPathCollector;
import kr.ac.snu.selab.soot.graph.MetaInfo;
import kr.ac.snu.selab.soot.graph.Node;
public class CallPathCollector<N extends Node> extends GraphPathCollector<N> {
private Set<MetaInfo> endNodes;
public CallPathCollector(N aStartNode, Graph<N> aGraph) {
super(aStartNode, aGraph);
}
private Set<MetaInfo> endNodes() {
return endNodes;
}
public void setEndNodes(Set<MetaInfo> aSet) {
endNodes = aSet;
}
@Override
protected boolean isGoal(N aNode) {
boolean result = false;
if (endNodes().contains(aNode)) // ||
// getChildren(aNode).isEmpty() ||
// hitSet.contains(aNode.key()))
{
result = true;
}
return result;
}
@Override
protected boolean isForwardSearch() {
return true;
}
}