com.ibm.wala.util.graph.impl
Class SlowSparseNumberedGraph<T>

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.SlowSparseNumberedGraph<T>
All Implemented Interfaces:
EdgeManager<T>, Graph<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>, java.lang.Iterable<T>
Direct Known Subclasses:
PDG

public class SlowSparseNumberedGraph<T>
extends AbstractNumberedGraph<T>

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


Constructor Summary
SlowSparseNumberedGraph()
           
SlowSparseNumberedGraph(int normalOutCount)
          If normalOutCount == n, this edge manager will eagerly allocated n words to hold out edges for each node.
 
Method Summary
static
<T> void
copyInto(Graph<T> g, Graph<T> into)
           
static
<T> SlowSparseNumberedGraph<T>
duplicate(Graph<T> g)
           
 EdgeManager<T> getEdgeManager()
           
 NodeManager<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

SlowSparseNumberedGraph

public SlowSparseNumberedGraph()

SlowSparseNumberedGraph

public SlowSparseNumberedGraph(int normalOutCount)
If normalOutCount == n, this edge manager will eagerly allocated n words to hold out edges for each node. (performance optimization for time)

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

getNodeManager

public NodeManager<T> getNodeManager()
Specified by:
getNodeManager in class AbstractGraph<T>
Returns:
the object which manages nodes in the graph

getEdgeManager

public EdgeManager<T> getEdgeManager()
Specified by:
getEdgeManager in class AbstractGraph<T>
Returns:
the object which manages edges in the graph

duplicate

public static <T> SlowSparseNumberedGraph<T> duplicate(Graph<T> g)
Parameters:
g -
Returns:
a graph with the same nodes and edges as g

copyInto

public static <T> void copyInto(Graph<T> g,
                                Graph<T> into)