|
|||||||||
| 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
MetaMethods 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 | ||||||||