Class DelegatingNumberedNodeManager<T extends INodeWithNumber>
java.lang.Object
com.ibm.wala.util.graph.impl.DelegatingNumberedNodeManager<T>
- All Implemented Interfaces:
NodeManager<T>, NumberedNodeManager<T>, Iterable<T>
public class DelegatingNumberedNodeManager<T extends INodeWithNumber>
extends 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidIf N.getNumber() == -1, then set N.number and insert this node in the graph.booleancontainsNode(@Nullable T n) intgetNode(int number) intintiterator()voidremoveNode(T n) remove a node from this graphstream()toString()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Constructor Details
-
DelegatingNumberedNodeManager
public DelegatingNumberedNodeManager()
-
-
Method Details
-
getNumber
- Specified by:
getNumberin interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getNode
- Specified by:
getNodein interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getMaxNumber
public int getMaxNumber()- Specified by:
getMaxNumberin interfaceNumberedNodeManager<T extends INodeWithNumber>
-
iterator
- Specified by:
iteratorin interfaceIterable<T extends INodeWithNumber>- Specified by:
iteratorin interfaceNodeManager<T extends INodeWithNumber>- Returns:
- an
Iteratorof the nodes in this graph - See Also:
-
stream
- Specified by:
streamin interfaceNodeManager<T extends INodeWithNumber>- Returns:
- a
Streamof the nodes in this graph
-
getNumberOfNodes
public int getNumberOfNodes()- Specified by:
getNumberOfNodesin interfaceNodeManager<T extends INodeWithNumber>- Returns:
- the number of nodes in this graph
- See Also:
-
addNode
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:
IllegalArgumentException- if n is null- See Also:
-
removeNode
Description copied from interface:NodeManagerremove a node from this graph- Specified by:
removeNodein interfaceNodeManager<T extends INodeWithNumber>- See Also:
-
toString
-
containsNode
- Specified by:
containsNodein interfaceNodeManager<T extends INodeWithNumber>- Returns:
- true iff the graph contains the specified node
- See Also:
-
iterateNodes
- Specified by:
iterateNodesin interfaceNumberedNodeManager<T extends INodeWithNumber>- Returns:
- iterator of nodes with the numbers in set s
-