Package com.ibm.wala.util.graph.impl
Class SparseNumberedEdgeManager<T>
java.lang.Object
com.ibm.wala.util.graph.impl.SparseNumberedEdgeManager<T>
- All Implemented Interfaces:
EdgeManager<T>,NumberedEdgeManager<T>,Serializable
public final class SparseNumberedEdgeManager<T>
extends Object
implements NumberedEdgeManager<T>, Serializable
An object which tracks edges for nodes that have numbers.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSparseNumberedEdgeManager(NumberedNodeManager<T> nodeManager) SparseNumberedEdgeManager(NumberedNodeManager<T> nodeManager, int normalCase, byte delegateImpl) If normalOutCount == n, this edge manager will eagerly allocated n words to hold out edges for each node. -
Method Summary
Modifier and TypeMethodDescriptionvoidintReturn the number ofimmediate predecessornodes of ngetPredNodeNumbers(T node) getPredNodes(T N) Return anIteratorover the immediate predecessor nodes of n This method never returnsnull.intgetSuccNodeCount(int number) intReturn the number ofimmediate successornodes of this Node in the GraphgetSuccNodeNumbers(T node) getSuccNodes(int number) getSuccNodes(T N) Return an Iterator over the immediate successor nodes of nbooleanhasAnySuccessor(int node) This is implemented as a shortcut for efficiencybooleanvoidremoveAllIncidentEdges(T node) voidremoveEdge(T src, T dst) voidremoveIncomingEdges(T node) voidremoveOutgoingEdges(T node) toString()
-
Constructor Details
-
SparseNumberedEdgeManager
- Parameters:
nodeManager- an object to track nodes
-
SparseNumberedEdgeManager
public SparseNumberedEdgeManager(NumberedNodeManager<T> nodeManager, int normalCase, byte delegateImpl) throws IllegalArgumentException If normalOutCount == n, this edge manager will eagerly allocated n words to hold out edges for each node. (performance optimization for time)- Parameters:
nodeManager- an object to track nodesnormalCase- what is the "normal" number of out edges for a node?- Throws:
IllegalArgumentException- if normalCase < 0
-
-
Method Details
-
getPredNodes
Description copied from interface:EdgeManagerReturn anIteratorover the immediate predecessor nodes of n This method never returnsnull.- Specified by:
getPredNodesin interfaceEdgeManager<T>- Returns:
- an
Iteratorover the immediate predecessor nodes of this Node. - Throws:
IllegalArgumentException
-
getPredNodeCount
Description copied from interface:EdgeManagerReturn the number ofimmediate predecessornodes of n- Specified by:
getPredNodeCountin interfaceEdgeManager<T>- Returns:
- the number of immediate predecessors of n.
- Throws:
IllegalArgumentException
-
getSuccNodes
Description copied from interface:EdgeManagerReturn an Iterator over the immediate successor nodes of nThis method never returns
null.- Specified by:
getSuccNodesin interfaceEdgeManager<T>- Returns:
- an Iterator over the immediate successor nodes of n
- Throws:
IllegalArgumentException
-
getSuccNodes
-
getSuccNodeNumbers
- Specified by:
getSuccNodeNumbersin interfaceNumberedEdgeManager<T>- Returns:
- the numbers identifying the immediate successors of node
- Throws:
IllegalArgumentException
-
getPredNodeNumbers
- Specified by:
getPredNodeNumbersin interfaceNumberedEdgeManager<T>- Returns:
- the numbers identifying the immediate predecessors of node
- Throws:
IllegalArgumentException
-
getSuccNodeCount
Description copied from interface:EdgeManagerReturn the number ofimmediate successornodes of this Node in the Graph- Specified by:
getSuccNodeCountin interfaceEdgeManager<T>- Returns:
- the number of immediate successor Nodes of this Node in the Graph.
- Throws:
IllegalArgumentException
-
getSuccNodeCount
public int getSuccNodeCount(int number) -
addEdge
- Specified by:
addEdgein interfaceEdgeManager<T>- Throws:
IllegalArgumentException
-
hasEdge
- Specified by:
hasEdgein interfaceEdgeManager<T>
-
removeAllIncidentEdges
- Specified by:
removeAllIncidentEdgesin interfaceEdgeManager<T>- Throws:
IllegalArgumentException
-
removeIncomingEdges
- Specified by:
removeIncomingEdgesin interfaceEdgeManager<T>- Throws:
IllegalArgumentException
-
removeEdge
- Specified by:
removeEdgein interfaceEdgeManager<T>- Throws:
IllegalArgumentException
-
removeOutgoingEdges
- Specified by:
removeOutgoingEdgesin interfaceEdgeManager<T>- Throws:
IllegalArgumentException
-
hasAnySuccessor
public boolean hasAnySuccessor(int node) This is implemented as a shortcut for efficiency- Returns:
- true iff that node has any successors
-
toString
-