com.ibm.wala.util.graph
Interface Graph<T>

Type Parameters:
T - the type of nodes in this graph.
All Superinterfaces:
EdgeManager<T>, java.lang.Iterable<T>, NodeManager<T>
All Known Subinterfaces:
CallGraph, ControlFlowGraph<I,T>, IFlowGraph, ISDG, ISupergraph<T,P>, LabeledGraph<T,U>, NumberedGraph<T>, OrderedMultiGraph<T>
All Known Implementing Classes:
AbstractCFG, AbstractDemandFlowGraph, AbstractFlowGraph, AbstractGraph, AbstractInterproceduralCFG, AbstractLabeledGraph, AbstractNumberedGraph, AbstractNumberedLabeledGraph, AstCallGraph, AstInducedCFG, AstTranslator.AstCFG, AstTranslator.IncipientCFG, BackwardsSupergraph, BasicCallGraph, BasicHeapGraph, BasicOrderedMultiGraph, CISDG, ControlDependenceGraph, CrossLanguageCallGraph, DelegatingCFG, DelegatingExplicitCallGraph, DelegatingGraph, DelegatingNumberedGraph, DemandPointerFlowGraph, DemandValueFlowGraph, ExplicitCallGraph, ExplodedControlFlowGraph, ExplodedInterproceduralCFG, HeapGraph, ICFGSupergraph, InducedCFG, InterproceduralCFG, InvertedGraph, InvertedNumberedGraph, JSCallGraph, JSInducedCFG, PartialCallGraph, PDG, PrunedCFG, SDG, ShrikeCFG, SimpleDemandPointerFlowGraph, SlowSparseNumberedGraph, SlowSparseNumberedLabeledGraph, SparseNumberedGraph, SSACFG

public interface Graph<T>
extends NodeManager<T>, EdgeManager<T>

Basic interface for a directed graph. We choose to define a Graph as a composition of a NodeManager and an EdgeManager, which track nodes and edges, respectively. This way, in many cases we can compose separate NodeManager and EdgeManager implementations to create Graph implementations, using delegation.


Method Summary
 void removeNodeAndEdges(T n)
          remove a node and all its incident edges
 
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 

Method Detail

removeNodeAndEdges

void removeNodeAndEdges(T n)
                        throws java.lang.UnsupportedOperationException
remove a node and all its incident edges

Throws:
java.lang.UnsupportedOperationException - if the graph implementation does not allow removal