Package com.ibm.wala.util.graph.impl
Class DelegatingNumberedNodeManager<T extends INodeWithNumber>
- java.lang.Object
-
- com.ibm.wala.util.graph.impl.DelegatingNumberedNodeManager<T>
-
- All Implemented Interfaces:
NodeManager<T>,NumberedNodeManager<T>,java.lang.Iterable<T>
public class DelegatingNumberedNodeManager<T extends INodeWithNumber> extends java.lang.Object implements NumberedNodeManager<T>
Basic implementation of a numbered graph -- this implementation relies on nodes that carry numbers and edges. The management of node numbers is a bit fragile, but designed this way for efficiency. Use this class with care.
-
-
Constructor Summary
Constructors Constructor Description DelegatingNumberedNodeManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddNode(T n)If N.getNumber() == -1, then set N.number and insert this node in the graph.booleancontainsNode(T n)intgetMaxNumber()TgetNode(int number)intgetNumber(T N)intgetNumberOfNodes()java.util.Iterator<T>iterateNodes(IntSet s)java.util.Iterator<T>iterator()voidremoveNode(T n)remove a node from this graphjava.lang.StringtoString()
-
-
-
Method Detail
-
getNumber
public int getNumber(T N)
- Specified by:
getNumberin interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getNode
public T getNode(int number)
- Specified by:
getNodein interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getMaxNumber
public int getMaxNumber()
- Specified by:
getMaxNumberin interfaceNumberedNodeManager<T extends INodeWithNumber>
-
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<T extends INodeWithNumber>- Specified by:
iteratorin interfaceNodeManager<T extends INodeWithNumber>- Returns:
- an
Iteratorof the nodes in this graph
-
getNumberOfNodes
public int getNumberOfNodes()
- Specified by:
getNumberOfNodesin interfaceNodeManager<T extends INodeWithNumber>- Returns:
- the number of nodes in this graph
-
addNode
public void addNode(T n)
If N.getNumber() == -1, then set N.number and insert this node in the graph. Use with extreme care.- Specified by:
addNodein interfaceNodeManager<T extends INodeWithNumber>- Throws:
java.lang.IllegalArgumentException- if n is null- See Also:
NodeManager.addNode(java.lang.Object)
-
removeNode
public void removeNode(T n)
Description copied from interface:NodeManagerremove a node from this graph- Specified by:
removeNodein interfaceNodeManager<T extends INodeWithNumber>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
containsNode
public boolean containsNode(T n)
- Specified by:
containsNodein interfaceNodeManager<T extends INodeWithNumber>- Returns:
- true iff the graph contains the specified node
-
iterateNodes
public java.util.Iterator<T> iterateNodes(IntSet s)
- Specified by:
iterateNodesin interfaceNumberedNodeManager<T extends INodeWithNumber>- Returns:
- iterator of nodes with the numbers in set s
-
-