harpoon.Analysis.MetaMethods
Class FakeMetaCallGraph
java.lang.Object
|
+--harpoon.Analysis.MetaMethods.MetaCallGraphAbstr
|
+--harpoon.Analysis.MetaMethods.FakeMetaCallGraph
- All Implemented Interfaces:
- MetaCallGraph, 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.2 2002/02/25 20:58:16 cananian Exp $
- Author:
- Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FakeMetaCallGraph
public FakeMetaCallGraph(CallGraph cg,
Set methods,
Set runs)
- Creates a
FakeMetaCallGraph
. Receives as parameters
a CallGraph
object and the set of all the executable
methods of the program. The methods
parameter can be
obtained by using the callableMethods
method of
ClassHierarchy
.
The resulting FakeMetaCallGraph
object is just a
MetaMethod
view of the data contained into cg
.