com.ibm.wala.ipa.callgraph
Interface CallGraph

All Superinterfaces:
EdgeManager<CGNode>, Graph<CGNode>, java.lang.Iterable<CGNode>, NodeManager<CGNode>, NumberedEdgeManager<CGNode>, NumberedGraph<CGNode>, NumberedNodeManager<CGNode>
All Known Implementing Classes:
AstCallGraph, BasicCallGraph, CrossLanguageCallGraph, DelegatingExplicitCallGraph, ExplicitCallGraph, JSCallGraph, PartialCallGraph

public interface CallGraph
extends NumberedGraph<CGNode>

Basic interface for a call graph, which is a graph of CGNode


Method Summary
 IClassHierarchy getClassHierarchy()
           
 java.util.Collection<CGNode> getEntrypointNodes()
           
 CGNode getFakeRootNode()
          Return the (fake) interprocedural root node of the call graph.
 CGNode getNode(IMethod method, Context C)
          If you want to get all the nodes corresponding to a particular method, regardless of context, then use getNodes
 java.util.Set<CGNode> getNodes(MethodReference m)
           
 int getNumberOfTargets(CGNode node, CallSiteReference site)
           
 java.util.Iterator<CallSiteReference> getPossibleSites(CGNode src, CGNode target)
           
 java.util.Set<CGNode> getPossibleTargets(CGNode node, CallSiteReference site)
          Return the set of CGNodes that represent possible targets of a particular call site from a particular node
 
Methods inherited from interface com.ibm.wala.util.graph.Graph
removeNodeAndEdges
 
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 
Methods inherited from interface com.ibm.wala.util.graph.NumberedNodeManager
getMaxNumber, getNode, getNumber, iterateNodes
 
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
 
Methods inherited from interface com.ibm.wala.util.graph.NumberedEdgeManager
getPredNodeNumbers, getSuccNodeNumbers
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 

Method Detail

getFakeRootNode

CGNode getFakeRootNode()
Return the (fake) interprocedural root node of the call graph.

Returns:
the "fake" root node the call graph

getEntrypointNodes

java.util.Collection<CGNode> getEntrypointNodes()
Returns:
an Iterator of the nodes designated as "root nodes"

getNode

CGNode getNode(IMethod method,
               Context C)
If you want to get all the nodes corresponding to a particular method, regardless of context, then use getNodes

Returns:
the node corresponding a method in a context

getNodes

java.util.Set<CGNode> getNodes(MethodReference m)
Parameters:
m - a method reference
Returns:
the set of all nodes in the call graph that represent this method.

getClassHierarchy

IClassHierarchy getClassHierarchy()
Returns:
the governing class hierarchy for this call graph

getPossibleTargets

java.util.Set<CGNode> getPossibleTargets(CGNode node,
                                         CallSiteReference site)
Return the set of CGNodes that represent possible targets of a particular call site from a particular node


getNumberOfTargets

int getNumberOfTargets(CGNode node,
                       CallSiteReference site)
Returns:
the number of nodes that the call site may dispatch to

getPossibleSites

java.util.Iterator<CallSiteReference> getPossibleSites(CGNode src,
                                                       CGNode target)
Returns:
iterator of CallSiteReference, the call sites in a node that might dispatch to the target node.