com.ibm.wala.util.graph.impl
Class DelegatingNumberedEdgeManager<T extends INodeWithNumberedEdges>

java.lang.Object
  extended by com.ibm.wala.util.graph.impl.DelegatingNumberedEdgeManager<T>
All Implemented Interfaces:
EdgeManager<T>, NumberedEdgeManager<T>

public class DelegatingNumberedEdgeManager<T extends INodeWithNumberedEdges>
extends java.lang.Object
implements NumberedEdgeManager<T>

An object that delegates edge management to the nodes, INodeWithNumberedEdges


Constructor Summary
DelegatingNumberedEdgeManager(DelegatingNumberedNodeManager<T> nodeManager)
           
 
Method Summary
 void addEdge(T src, T dst)
           
 int getPredNodeCount(T N)
          Return the number of immediate predecessor nodes of this Node in the Graph.
 IntSet getPredNodeNumbers(T node)
           
 java.util.Iterator<T> getPredNodes(T N)
          Return an Iterator over the immediate predecessor nodes of this Node in the Graph.
 int getSuccNodeCount(T N)
          Return the number of immediate successor nodes of this Node in the Graph
 IntSet getSuccNodeNumbers(T node)
           
 java.util.Iterator<T> getSuccNodes(T N)
          Return an Iterator over the immediate successor nodes of this Node in the Graph
 boolean hasEdge(T src, T dst)
           
 void removeAllIncidentEdges(T node)
           
 void removeEdge(T src, T dst)
           
 void removeIncomingEdges(T node)
           
 void removeOutgoingEdges(T node)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingNumberedEdgeManager

public DelegatingNumberedEdgeManager(DelegatingNumberedNodeManager<T> nodeManager)
Method Detail

getPredNodes

public java.util.Iterator<T> getPredNodes(T N)
                                                                  throws java.lang.IllegalArgumentException
Description copied from interface: EdgeManager
Return an Iterator over the immediate predecessor nodes of this Node in the Graph. This method never returns null.

Specified by:
getPredNodes in interface EdgeManager<T extends INodeWithNumberedEdges>
Returns:
an Iterator over the immediate predecessor nodes of this Node.
Throws:
java.lang.IllegalArgumentException

getPredNodeNumbers

public IntSet getPredNodeNumbers(T node)
Specified by:
getPredNodeNumbers in interface NumberedEdgeManager<T extends INodeWithNumberedEdges>
Returns:
the numbers identifying the immediate predecessors of node

getPredNodeCount

public int getPredNodeCount(T N)
                     throws java.lang.IllegalArgumentException
Description copied from interface: EdgeManager
Return the number of immediate predecessor nodes of this Node in the Graph.

Specified by:
getPredNodeCount in interface EdgeManager<T extends INodeWithNumberedEdges>
Returns:
the number of immediate predecessor Nodes of this Node in the Graph.
Throws:
java.lang.IllegalArgumentException

getSuccNodes

public java.util.Iterator<T> getSuccNodes(T N)
Description copied from interface: EdgeManager
Return an Iterator over the immediate successor nodes of this Node in the Graph

This method never returns null.

Specified by:
getSuccNodes in interface EdgeManager<T extends INodeWithNumberedEdges>
Returns:
an Iterator over the immediate successor Nodes of this Node.

getSuccNodeCount

public int getSuccNodeCount(T N)
Description copied from interface: EdgeManager
Return the number of immediate successor nodes of this Node in the Graph

Specified by:
getSuccNodeCount in interface EdgeManager<T extends INodeWithNumberedEdges>
Returns:
the number of immediate successor Nodes of this Node in the Graph.

addEdge

public void addEdge(T src,
                    T dst)
Specified by:
addEdge in interface EdgeManager<T extends INodeWithNumberedEdges>

removeEdge

public void removeEdge(T src,
                       T dst)
Specified by:
removeEdge in interface EdgeManager<T extends INodeWithNumberedEdges>

removeAllIncidentEdges

public void removeAllIncidentEdges(T node)
Specified by:
removeAllIncidentEdges in interface EdgeManager<T extends INodeWithNumberedEdges>

removeIncomingEdges

public void removeIncomingEdges(T node)
Specified by:
removeIncomingEdges in interface EdgeManager<T extends INodeWithNumberedEdges>

removeOutgoingEdges

public void removeOutgoingEdges(T node)
Specified by:
removeOutgoingEdges in interface EdgeManager<T extends INodeWithNumberedEdges>

hasEdge

public boolean hasEdge(T src,
                       T dst)
Specified by:
hasEdge in interface EdgeManager<T extends INodeWithNumberedEdges>

getSuccNodeNumbers

public IntSet getSuccNodeNumbers(T node)
Specified by:
getSuccNodeNumbers in interface NumberedEdgeManager<T extends INodeWithNumberedEdges>
Returns:
the numbers identifying the immediate successors of node