com.ibm.wala.analysis.pointers
Class BasicHeapGraph

java.lang.Object
  extended by com.ibm.wala.analysis.pointers.HeapGraph
      extended by com.ibm.wala.analysis.pointers.BasicHeapGraph
All Implemented Interfaces:
EdgeManager<java.lang.Object>, Graph<java.lang.Object>, NodeManager<java.lang.Object>, NumberedEdgeManager<java.lang.Object>, NumberedGraph<java.lang.Object>, NumberedNodeManager<java.lang.Object>, java.lang.Iterable<java.lang.Object>

public class BasicHeapGraph
extends HeapGraph

Basic implementation of HeapGraph


Constructor Summary
BasicHeapGraph(PointerAnalysis P, CallGraph callGraph)
           
 
Method Summary
 void addEdge(java.lang.Object from, java.lang.Object to)
           
 void addNode(java.lang.Object n)
          add a node to this graph
 boolean containsNode(java.lang.Object N)
           
 int getMaxNumber()
           
 java.lang.Object getNode(int number)
           
 int getNumber(java.lang.Object N)
           
 int getNumberOfNodes()
           
 int getPredNodeCount(java.lang.Object N)
          Return the number of immediate predecessor nodes of n
 IntSet getPredNodeNumbers(java.lang.Object node)
           
 java.util.Iterator<java.lang.Object> getPredNodes(java.lang.Object N)
          Return an Iterator over the immediate predecessor nodes of n This method never returns null.
 int getSuccNodeCount(java.lang.Object N)
          Return the number of immediate successor nodes of this Node in the Graph
 IntSet getSuccNodeNumbers(java.lang.Object node)
           
 java.util.Iterator<java.lang.Object> getSuccNodes(java.lang.Object N)
          Return an Iterator over the immediate successor nodes of n
 boolean hasEdge(java.lang.Object from, java.lang.Object to)
           
 java.util.Iterator<java.lang.Object> iterator()
           
 void removeAllIncidentEdges(java.lang.Object node)
           
 void removeEdge(java.lang.Object from, java.lang.Object to)
           
 void removeIncomingEdges(java.lang.Object node)
           
 void removeNode(java.lang.Object n)
          remove a node from this graph
 void removeOutgoingEdges(java.lang.Object node)
           
 java.lang.String toString()
           
 
Methods inherited from class com.ibm.wala.analysis.pointers.HeapGraph
getHeapModel, getPointerAnalysis, getReachableInstances, iterateNodes, removeNodeAndEdges
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BasicHeapGraph

public BasicHeapGraph(PointerAnalysis P,
                      CallGraph callGraph)
               throws java.lang.NullPointerException
Parameters:
P - governing pointer analysis
Throws:
java.lang.NullPointerException - if P is null
Method Detail

getNumber

public int getNumber(java.lang.Object N)

getNode

public java.lang.Object getNode(int number)

getMaxNumber

public int getMaxNumber()

iterator

public java.util.Iterator<java.lang.Object> iterator()
Returns:
an Iterator of the nodes in this graph

getNumberOfNodes

public int getNumberOfNodes()
Returns:
the number of nodes in this graph

getPredNodes

public java.util.Iterator<java.lang.Object> getPredNodes(java.lang.Object N)
Description copied from interface: EdgeManager
Return an Iterator over the immediate predecessor nodes of n This method never returns null.

Returns:
an Iterator over the immediate predecessor nodes of this Node.

getPredNodeCount

public int getPredNodeCount(java.lang.Object N)
Description copied from interface: EdgeManager
Return the number of immediate predecessor nodes of n

Returns:
the number of immediate predecessors of n.

getSuccNodes

public java.util.Iterator<java.lang.Object> getSuccNodes(java.lang.Object N)
Description copied from interface: EdgeManager
Return an Iterator over the immediate successor nodes of n

This method never returns null.

Returns:
an Iterator over the immediate successor nodes of n

getSuccNodeCount

public int getSuccNodeCount(java.lang.Object N)
Description copied from interface: EdgeManager
Return the number of immediate successor nodes of this Node in the Graph

Returns:
the number of immediate successor Nodes of this Node in the Graph.

addNode

public void addNode(java.lang.Object n)
             throws UnimplementedError
Description copied from interface: NodeManager
add a node to this graph

Throws:
UnimplementedError

removeNode

public void removeNode(java.lang.Object n)
                throws UnimplementedError
Description copied from interface: NodeManager
remove a node from this graph

Throws:
UnimplementedError

addEdge

public void addEdge(java.lang.Object from,
                    java.lang.Object to)
             throws UnimplementedError
Throws:
UnimplementedError

removeEdge

public void removeEdge(java.lang.Object from,
                       java.lang.Object to)
                throws UnimplementedError
Throws:
UnimplementedError

hasEdge

public boolean hasEdge(java.lang.Object from,
                       java.lang.Object to)
                throws UnimplementedError
Throws:
UnimplementedError

removeAllIncidentEdges

public void removeAllIncidentEdges(java.lang.Object node)
                            throws java.lang.UnsupportedOperationException
Throws:
java.lang.UnsupportedOperationException

containsNode

public boolean containsNode(java.lang.Object N)
Returns:
true iff the graph contains the specified node

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

removeIncomingEdges

public void removeIncomingEdges(java.lang.Object node)
                         throws UnimplementedError
Throws:
UnimplementedError

removeOutgoingEdges

public void removeOutgoingEdges(java.lang.Object node)
                         throws UnimplementedError
Throws:
UnimplementedError

getSuccNodeNumbers

public IntSet getSuccNodeNumbers(java.lang.Object node)
                          throws UnimplementedError
Returns:
the numbers identifying the immediate successors of node
Throws:
UnimplementedError

getPredNodeNumbers

public IntSet getPredNodeNumbers(java.lang.Object node)
                          throws UnimplementedError
Returns:
the numbers identifying the immediate predecessors of node
Throws:
UnimplementedError