soot.jimple.toolkits.invoke
Class VTATypeGraph

java.lang.Object
  |
  +--soot.toolkits.graph.HashMutableDirectedGraph
        |
        +--soot.toolkits.graph.MemoryEfficientGraph
              |
              +--soot.jimple.toolkits.invoke.VTATypeGraph
All Implemented Interfaces:
DirectedGraph, MutableDirectedGraph, TypeGraph

public class VTATypeGraph
extends MemoryEfficientGraph
implements TypeGraph

A graph where the nodes are types in the analysed program; edges indicate that there is assignment between two types.


Field Summary
 
Fields inherited from class soot.toolkits.graph.HashMutableDirectedGraph
heads, nodeToPreds, nodeToSuccs, tails
 
Constructor Summary
VTATypeGraph(InvokeGraph ig)
           
 
Method Summary
 void addEdge(java.lang.Object o, java.lang.Object p)
          Adds an edge to the graph between 2 nodes.
 void addNode(java.lang.Object o)
          Adds a node to the graph.
static boolean isRefLikeType(Type t)
          Returns true if t is RefType or ArrayType.
 int numEdges()
           
 
Methods inherited from class soot.toolkits.graph.MemoryEfficientGraph
removeEdge, removeNode
 
Methods inherited from class soot.toolkits.graph.HashMutableDirectedGraph
clearAll, clone, containsEdge, containsNode, getHeads, getNodes, getPredsOf, getSuccsOf, getTails, iterator, printGraph, size
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface soot.toolkits.graph.MutableDirectedGraph
containsEdge, containsNode, getNodes, removeEdge, removeNode
 
Methods inherited from interface soot.toolkits.graph.DirectedGraph
getHeads, getPredsOf, getSuccsOf, getTails, iterator, size
 

Constructor Detail

VTATypeGraph

public VTATypeGraph(InvokeGraph ig)
Method Detail

addNode

public void addNode(java.lang.Object o)
Description copied from interface: MutableDirectedGraph
Adds a node to the graph. Initially the added node has no successors or predecessors. ; as a consequence it is considered both a head and tail for the graph.

Specified by:
addNode in interface MutableDirectedGraph
Overrides:
addNode in class MemoryEfficientGraph
Parameters:
o - a node to add to the graph.
See Also:
DirectedGraph.getHeads(), DirectedGraph.getTails()

addEdge

public void addEdge(java.lang.Object o,
                    java.lang.Object p)
Description copied from interface: MutableDirectedGraph
Adds an edge to the graph between 2 nodes. If the edge is already present no change is made.

Specified by:
addEdge in interface MutableDirectedGraph
Overrides:
addEdge in class MemoryEfficientGraph
Parameters:
o - out node for the edge.
p - in node for the edge.

numEdges

public int numEdges()

isRefLikeType

public static boolean isRefLikeType(Type t)
Returns true if t is RefType or ArrayType.