harpoon.Analysis.MetaMethods
Class MetaCallGraphAbstr

java.lang.Object
  |
  +--harpoon.Analysis.MetaMethods.MetaCallGraphAbstr
All Implemented Interfaces:
MetaCallGraph, Serializable
Direct Known Subclasses:
FakeMetaCallGraph, MetaCallGraphImpl

public abstract class MetaCallGraphAbstr
extends Object
implements MetaCallGraph

MetaCallGraphAbstr Abstract implementation of the MetaCallGraph interface.

Version:
$Id: MetaCallGraphAbstr.java,v 1.2 2002/02/25 20:58:16 cananian 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
           
 
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.
 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 the meta method mm.
 void print(PrintWriter pw, boolean detailed_view, MetaMethod root)
          Nice pretty-printer for debug purposes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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 interface 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 interface MetaCallGraph

getTransCallees

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

Specified by:
getTransCallees in interface 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 interface 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 interface MetaCallGraph

getSplitRelation

public 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 interface MetaCallGraph

getRunMetaMethods

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

Specified by:
getRunMetaMethods in interface MetaCallGraph

print

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

Specified by:
print in interface MetaCallGraph