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>
,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 Constructor Description DelegatingNumberedNodeManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addNode(T n)
If N.getNumber() == -1, then set N.number and insert this node in the graph.boolean
containsNode(T n)
int
getMaxNumber()
T
getNode(int number)
int
getNumber(T N)
int
getNumberOfNodes()
Iterator<T>
iterateNodes(IntSet s)
Iterator<T>
iterator()
void
removeNode(T n)
remove a node from this graphString
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
getNumber
public int getNumber(T N)
- Specified by:
getNumber
in interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getNode
public T getNode(int number)
- Specified by:
getNode
in interfaceNumberedNodeManager<T extends INodeWithNumber>
-
getMaxNumber
public int getMaxNumber()
- Specified by:
getMaxNumber
in interfaceNumberedNodeManager<T extends INodeWithNumber>
-
iterator
public Iterator<T> iterator()
- Specified by:
iterator
in interfaceIterable<T extends INodeWithNumber>
- Specified by:
iterator
in interfaceNodeManager<T extends INodeWithNumber>
- Returns:
- an
Iterator
of the nodes in this graph
-
getNumberOfNodes
public int getNumberOfNodes()
- Specified by:
getNumberOfNodes
in 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:
addNode
in interfaceNodeManager<T extends INodeWithNumber>
- Throws:
IllegalArgumentException
- if n is null- See Also:
NodeManager.addNode(java.lang.Object)
-
removeNode
public void removeNode(T n)
Description copied from interface:NodeManager
remove a node from this graph- Specified by:
removeNode
in interfaceNodeManager<T extends INodeWithNumber>
-
containsNode
public boolean containsNode(T n)
- Specified by:
containsNode
in interfaceNodeManager<T extends INodeWithNumber>
- Returns:
- true iff the graph contains the specified node
-
iterateNodes
public Iterator<T> iterateNodes(IntSet s)
- Specified by:
iterateNodes
in interfaceNumberedNodeManager<T extends INodeWithNumber>
- Returns:
- iterator of nodes with the numbers in set s
-
-