java.lang.Object
java.util.AbstractMap
Util.Collections.UnmodifiableMultiMap
Compil3r.Quad.CallGraph
Compil3r.Quad.CHACallGraph
- All Implemented Interfaces:
- Util.Collections.BinaryRelation, Util.Graphs.Graph, java.util.Map, Util.Collections.MultiMap
- Direct Known Subclasses:
- RootedCHACallGraph
- public class CHACallGraph
- extends CallGraph
A simple call graph implementation based on class-hierarchy analysis with
optional rapid type analysis.
- Version:
- $Id: CHACallGraph.java,v 1.5 2003/07/04 07:31:54 joewhaley Exp $
Nested classes inherited from class java.util.AbstractMap |
|
Nested classes inherited from class java.util.Map |
java.util.Map.Entry |
Methods inherited from class Compil3r.Quad.CallGraph |
calculateBackEdges, calculateEdgeRelation, calculateReachableMethods, contains, entrySet, findDepths, getAllCallSites, getAllMethods, getCallees, getCallees, getCallers, getCallGraphMap, getCallSiteMap, getCallSites, getCallSites, getCallSites0, getCallSites0, getCallSites1, getNavigator, getTargetMethod, getTargetMethods, getValues, numberOfTargetMethods, numberOfTargetMethods, toString |
Methods inherited from class Util.Collections.UnmodifiableMultiMap |
add, addAll, addAll, clear, computeHistogram, computeHistogram, entrySetHelper, proxy, put, putAll, remove, remove, removeAll, retainAll |
INSTANCE
public static final CHACallGraph INSTANCE
classes
protected final java.util.Set classes
CHACallGraph
public CHACallGraph(java.util.Set classes)
- Construct a call graph assuming only the given types are
used by the program, i.e. rapid type analysis.
CHACallGraph
protected CHACallGraph()
getTargetMethods
public java.util.Collection getTargetMethods(java.lang.Object context,
ProgramLocation callSite)
- Description copied from class:
CallGraph
- Returns the possible target methods of the given call site under the given context.
The interpretation of the context object is specific to the type of call graph.
- Specified by:
getTargetMethods
in class CallGraph
getRoots
public java.util.Collection getRoots()
- Specified by:
getRoots
in interface Util.Graphs.Graph
- Specified by:
getRoots
in class CallGraph
setRoots
public void setRoots(java.util.Collection roots)
- Description copied from class:
CallGraph
- Sets up the root methods to be the given set. Later call graph queries
use the value that you pass in here. Implementing this method is
optional -- it is only necessary if you use methods that require a root
set, like getReachableMethods().
- Specified by:
setRoots
in class CallGraph