harpoon.Analysis.MetaMethods
Class MetaCallGraphAbstr

java.lang.Object
  extended by jpaul.Graphs.DiGraph<MetaMethod>
      extended by harpoon.Analysis.MetaMethods.MetaCallGraph
          extended by harpoon.Analysis.MetaMethods.MetaCallGraphAbstr
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
FakeMetaCallGraph, MetaCallGraphImpl

public abstract class MetaCallGraphAbstr
extends MetaCallGraph

MetaCallGraphAbstr Map based abstract MetaCallGraph.

Version:
$Id: MetaCallGraphAbstr.java,v 1.8 2005/08/17 23:40:52 salcianu Exp $
Author:
Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>
See Also:
Serialized Form

Field Summary
protected  Set all_meta_methods
           
protected  Map callees1_cmpct
           
protected  Map callees2_cmpct
           
protected  Set run_mms
           
 
Fields inherited from class harpoon.Analysis.MetaMethods.MetaCallGraph
navigator
 
Fields inherited from class jpaul.Graphs.DiGraph
CACHING
 
Constructor Summary
MetaCallGraphAbstr()
           
 
Method Summary
 Set getAllMetaMethods()
          Returns the set of all the meta methods that might be called during the execution of the program.
 MetaMethod[] getCallees(MetaMethod mm)
          Returns the meta methods that can be called by mm.
 MetaMethod[] getCallees(MetaMethod mm, CALL cs)
          Returns the meta methods that can be called by mm at the call site q.
 Set getCallSites(MetaMethod mm)
          Returns the set of all the call sites in the code of the meta-method mm.
 Set getRunMetaMethods()
          Returns the set of the meta-methods that could be called as the body of some thread.
 jpaul.DataStructs.Relation getSplitRelation()
          Computes the split relation.
 Set getTransCallees(MetaMethod mm)
          Returns the set of all the meta methods that might be called, directly or indirectly, by meta method mm.
 void print(PrintStream ps, boolean detailed_view, MetaMethod root)
          Nice pretty-printer for debug purposes.
 
Methods inherited from class harpoon.Analysis.MetaMethods.MetaCallGraph
getBiDiNavigator, getForwardNavigator, getRoots
 
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

callees1_cmpct

protected final Map callees1_cmpct

callees2_cmpct

protected final Map callees2_cmpct

all_meta_methods

protected final Set all_meta_methods

run_mms

protected Set run_mms
Constructor Detail

MetaCallGraphAbstr

public MetaCallGraphAbstr()
Method Detail

getCallees

public MetaMethod[] getCallees(MetaMethod mm)
Returns the meta methods that can be called by mm.

Specified by:
getCallees in class MetaCallGraph

getCallees

public MetaMethod[] getCallees(MetaMethod mm,
                               CALL cs)
Returns the meta methods that can be called by mm at the call site q.

Specified by:
getCallees in class MetaCallGraph

getTransCallees

public Set getTransCallees(MetaMethod mm)
Returns the set of all the meta methods that might be called, directly or indirectly, by meta method mm.

Specified by:
getTransCallees in class MetaCallGraph

getCallSites

public Set getCallSites(MetaMethod mm)
Returns the set of all the call sites in the code of the meta-method mm.

Specified by:
getCallSites in class MetaCallGraph

getAllMetaMethods

public Set getAllMetaMethods()
Returns the set of all the meta methods that might be called during the execution of the program.

Specified by:
getAllMetaMethods in class MetaCallGraph

getSplitRelation

public jpaul.DataStructs.Relation getSplitRelation()
Computes the split relation. This is a Relation that associates to each HMethod the set of MetaMethods specialized from it.

Specified by:
getSplitRelation in class MetaCallGraph

getRunMetaMethods

public Set getRunMetaMethods()
Description copied from class: MetaCallGraph
Returns the set of the meta-methods that could be called as the body of some thread.

Specified by:
getRunMetaMethods in class MetaCallGraph

print

public void print(PrintStream ps,
                  boolean detailed_view,
                  MetaMethod root)
Nice pretty-printer for debug purposes.

Specified by:
print in class MetaCallGraph