com.ibm.wala.util.graph
Class AbstractNumberedGraph<T>

java.lang.Object
  extended by com.ibm.wala.util.graph.AbstractGraph<T>
      extended by com.ibm.wala.util.graph.AbstractNumberedGraph<T>
All Implemented Interfaces:
EdgeManager<T>, Graph<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>, java.lang.Iterable<T>
Direct Known Subclasses:
AbstractNumberedLabeledGraph, BasicCallGraph, ControlDependenceGraph, DelegatingCFG, DelegatingNumberedGraph, InvertedNumberedGraph, PrunedCFG, SDG, SlowSparseNumberedGraph, SparseNumberedGraph

public abstract class AbstractNumberedGraph<T>
extends AbstractGraph<T>
implements NumberedGraph<T>

Basic functionality for a graph that delegates node and edge management, and tracks node numbers


Constructor Summary
AbstractNumberedGraph()
           
 
Method Summary
protected abstract  NumberedEdgeManager<T> getEdgeManager()
           
 int getMaxNumber()
           
 T getNode(int number)
           
protected abstract  NumberedNodeManager<T> getNodeManager()
           
 int getNumber(T N)
           
 IntSet getPredNodeNumbers(T node)
           
 IntSet getSuccNodeNumbers(T node)
           
 java.util.Iterator<T> iterateNodes(IntSet s)
           
 
Methods inherited from class com.ibm.wala.util.graph.AbstractGraph
addEdge, addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.ibm.wala.util.graph.Graph
removeNodeAndEdges
 
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 

Constructor Detail

AbstractNumberedGraph

public AbstractNumberedGraph()
Method Detail

getNodeManager

protected abstract NumberedNodeManager<T> getNodeManager()
Specified by:
getNodeManager in class AbstractGraph<T>
Returns:
the object which manages nodes in the graph

getEdgeManager

protected abstract NumberedEdgeManager<T> getEdgeManager()
Specified by:
getEdgeManager in class AbstractGraph<T>
Returns:
the object which manages edges in the graph

getMaxNumber

public int getMaxNumber()
Specified by:
getMaxNumber in interface NumberedNodeManager<T>

getNode

public T getNode(int number)
Specified by:
getNode in interface NumberedNodeManager<T>

getNumber

public int getNumber(T N)
Specified by:
getNumber in interface NumberedNodeManager<T>

iterateNodes

public java.util.Iterator<T> iterateNodes(IntSet s)
Specified by:
iterateNodes in interface NumberedNodeManager<T>
Returns:
iterator of nodes with the numbers in set s

getPredNodeNumbers

public IntSet getPredNodeNumbers(T node)
                          throws java.lang.IllegalArgumentException
Specified by:
getPredNodeNumbers in interface NumberedEdgeManager<T>
Returns:
the numbers identifying the immediate predecessors of node
Throws:
java.lang.IllegalArgumentException

getSuccNodeNumbers

public IntSet getSuccNodeNumbers(T node)
                          throws java.lang.IllegalArgumentException
Specified by:
getSuccNodeNumbers in interface NumberedEdgeManager<T>
Returns:
the numbers identifying the immediate successors of node
Throws:
java.lang.IllegalArgumentException