harpoon.Analysis.MetaMethods
Class FakeMetaCallGraph

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

public class FakeMetaCallGraph
extends MetaCallGraphAbstr

FakeMetaCallGraph converts a classic CallGraph to a MetaCallGraph. Basically, it offers a MetaMethods-view of the call graph, without doing any specialization. This is possible because there is an obvious mapping from each method of the program to an unspecialized meta-method consisting of that method plus its declared parameter types (marked as polymorphic to cope with all the possible ways that method could be called). Although it doesn't offer any additional power, FakeMetaCallGraph allows the use of the components that require "meta methods" even without specializing methods to meta-methods. For example, if you need to use the PointerAnalysis stuff, but don't feel very comfortable with meta-methods, just pass it a FakeMetaCallGraph.

Version:
$Id: FakeMetaCallGraph.java,v 1.7 2004/02/08 03:19:57 cananian Exp $
Author:
Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>
See Also:
Serialized Form

Field Summary
 
Fields inherited from class harpoon.Analysis.MetaMethods.MetaCallGraphAbstr
all_meta_methods, callees1_cmpct, callees2_cmpct, run_mms
 
Fields inherited from class harpoon.Analysis.MetaMethods.MetaCallGraph
navigator
 
Fields inherited from class jpaul.Graphs.DiGraph
CACHING
 
Constructor Summary
FakeMetaCallGraph(CallGraph cg)
           
FakeMetaCallGraph(CallGraph cg, Set runs)
          Creates a FakeMetaCallGraph.
 
Method Summary
 
Methods inherited from class harpoon.Analysis.MetaMethods.MetaCallGraphAbstr
getAllMetaMethods, getCallees, getCallees, getCallSites, getRunMetaMethods, getSplitRelation, getTransCallees, print
 
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
 

Constructor Detail

FakeMetaCallGraph

public FakeMetaCallGraph(CallGraph cg,
                         Set runs)
Creates a FakeMetaCallGraph. Receives as parameters a CallGraph object. The resulting FakeMetaCallGraph object is just a MetaMethod view of the data contained into cg.


FakeMetaCallGraph

public FakeMetaCallGraph(CallGraph cg)