com.ibm.wala.util.graph.impl
Class SparseNumberedGraph<T extends INodeWithNumber>

java.lang.Object
  extended by com.ibm.wala.util.graph.AbstractGraph<T>
      extended by com.ibm.wala.util.graph.AbstractNumberedGraph<T>
          extended by com.ibm.wala.util.graph.impl.SparseNumberedGraph<T>
All Implemented Interfaces:
EdgeManager<T>, Graph<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>, java.lang.Iterable<T>
Direct Known Subclasses:
AstTranslator.IncipientCFG

public class SparseNumberedGraph<T extends INodeWithNumber>
extends AbstractNumberedGraph<T>

A graph of numbered nodes, expected to have a fairly sparse edge structure.


Constructor Summary
SparseNumberedGraph()
           
SparseNumberedGraph(DelegatingNumberedNodeManager<T> nodeManager, SparseNumberedEdgeManager<T> edgeManager)
           
SparseNumberedGraph(int normalCase)
          If normalCase == n, the s edge manager will eagerly allocated n words to hold out edges for each node.
 
Method Summary
protected  NumberedEdgeManager<T> getEdgeManager()
           
protected  NumberedNodeManager<T> getNodeManager()
           
 
Methods inherited from class com.ibm.wala.util.graph.AbstractNumberedGraph
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
 
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

SparseNumberedGraph

public SparseNumberedGraph()

SparseNumberedGraph

public SparseNumberedGraph(int normalCase)
If normalCase == n, the s edge manager will eagerly allocated n words to hold out edges for each node. (performance optimization for time)

Parameters:
normalCase - what is the "normal" number of out edges for a node?

SparseNumberedGraph

public SparseNumberedGraph(DelegatingNumberedNodeManager<T> nodeManager,
                           SparseNumberedEdgeManager<T> edgeManager)
Method Detail

getNodeManager

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

getEdgeManager

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