harpoon.Analysis.MetaMethods
Interface MetaCallGraph

All Superinterfaces:
Serializable
All Known Implementing Classes:
MetaCallGraphAbstr

public interface MetaCallGraph
extends Serializable

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].

Version:
$Id: MetaCallGraph.java,v 1.2 2002/02/25 20:58:16 cananian Exp $
Author:
Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>

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.
 

Method Detail

getCallees

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


getCallees

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


getCallSites

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


getAllMetaMethods

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


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. It's just the transitive closure of the getCallees method.


getSplitRelation

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


getRunMetaMethods

public Set getRunMetaMethods()
Returns the set of the meta-methods that could be called as the body of some thread.


print

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