|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjpaul.Graphs.DiGraph<MetaMethod>
harpoon.Analysis.MetaMethods.MetaCallGraph
public abstract class MetaCallGraph
MetaCallGraph
is for meta methods what callGraph
is for "normal" methods. It provides information on what meta
methods are called by a given meta method [at a specific call site].
Field Summary | |
---|---|
protected jpaul.Graphs.BiDiNavigator<MetaMethod> |
navigator
|
Fields inherited from class jpaul.Graphs.DiGraph |
---|
CACHING |
Constructor Summary | |
---|---|
MetaCallGraph()
|
Method Summary | |
---|---|
abstract Set |
getAllMetaMethods()
Returns the set of all the meta methods that might be called during the execution of the program. |
jpaul.Graphs.BiDiNavigator<MetaMethod> |
getBiDiNavigator()
Returns a bi-directional top-down graph navigator through this meta-callgraph. |
abstract MetaMethod[] |
getCallees(MetaMethod mm)
Returns the meta methods that can be called by mm . |
abstract MetaMethod[] |
getCallees(MetaMethod mm,
CALL cs)
Returns the meta methods that can be called by mm
at the call site q . |
abstract Set |
getCallSites(MetaMethod mm)
Returns the set of all the call sites in the code of the meta-method mm . |
jpaul.Graphs.ForwardNavigator<MetaMethod> |
getForwardNavigator()
Returns a forward-only navigator through this
meta-callgraph. |
Set |
getRoots()
|
abstract Set |
getRunMetaMethods()
Returns the set of the meta-methods that could be called as the body of some thread. |
abstract jpaul.DataStructs.Relation |
getSplitRelation()
Computes the split relation. |
abstract Set |
getTransCallees(MetaMethod mm)
Returns the set of all the meta methods that might be called, directly or indirectly, by the meta method mm . |
abstract void |
print(PrintStream ps,
boolean detailed_view,
MetaMethod root)
Nice pretty-printer for debug purposes. |
Methods inherited from class jpaul.Graphs.DiGraph |
---|
constructBiDiNavigator, dfs, dfs2, diGraph, diGraph, findPath, findPath, forAllVertices, getComponentDiGraph, numArcs, numVertices, reverseDiGraph, subDiGraph, toString, transitivePred, transitivePred, transitiveSucc, transitiveSucc, union, vertices |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected jpaul.Graphs.BiDiNavigator<MetaMethod> navigator
Constructor Detail |
---|
public MetaCallGraph()
Method Detail |
---|
public abstract MetaMethod[] getCallees(MetaMethod mm)
mm
.
public abstract MetaMethod[] getCallees(MetaMethod mm, CALL cs)
mm
at the call site q
.
public abstract Set getCallSites(MetaMethod mm)
mm
.
public abstract Set getAllMetaMethods()
public abstract Set getTransCallees(MetaMethod mm)
mm
. It's just the
transitive closure of the getCallees
method.
public abstract jpaul.DataStructs.Relation getSplitRelation()
Relation
that associates to each HMethod
the set of
MetaMethod
s specialized from it.
public abstract Set getRunMetaMethods()
public abstract void print(PrintStream ps, boolean detailed_view, MetaMethod root)
public Set getRoots()
getRoots
in class jpaul.Graphs.DiGraph<MetaMethod>
public jpaul.Graphs.BiDiNavigator<MetaMethod> getBiDiNavigator()
this
meta-callgraph. Complexity: BIG; at least
linear in the number of nodes and edges in the call graph.
Therefore, we cache its result internally.
getBiDiNavigator
in class jpaul.Graphs.DiGraph<MetaMethod>
public jpaul.Graphs.ForwardNavigator<MetaMethod> getForwardNavigator()
this
meta-callgraph. Complexity: O(1).
getForwardNavigator
in class jpaul.Graphs.DiGraph<MetaMethod>
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |