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.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
DelegatingNumberedNodeManager
public DelegatingNumberedNodeManager()
getNumber
public int getNumber(T N)
- Specified by:
getNumber in interface NumberedNodeManager<T extends INodeWithNumber>
getNode
public T getNode(int number)
- Specified by:
getNode in interface NumberedNodeManager<T extends INodeWithNumber>
getMaxNumber
public int getMaxNumber()
- Specified by:
getMaxNumber in interface NumberedNodeManager<T extends INodeWithNumber>
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iterator in interface NodeManager<T extends INodeWithNumber>- Specified by:
iterator in interface java.lang.Iterable<T extends INodeWithNumber>
- Returns:
- an Iterator of the nodes in this graph
getNumberOfNodes
public int getNumberOfNodes()
- Specified by:
getNumberOfNodes in interface NodeManager<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 interface NodeManager<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:
NodeManager
- remove a node from this graph
- Specified by:
removeNode in interface NodeManager<T extends INodeWithNumber>
toString
public java.lang.String toString()
- Overrides:
toString in class java.lang.Object
containsNode
public boolean containsNode(T n)
- Specified by:
containsNode in interface NodeManager<T extends INodeWithNumber>
- Returns:
- true iff the graph contains the specified node
iterateNodes
public java.util.Iterator<T> iterateNodes(IntSet s)
- Specified by:
iterateNodes in interface NumberedNodeManager<T extends INodeWithNumber>
- Returns:
- iterator of nodes with the numbers in set s