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.
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