Interface Graph<T>
- Type Parameters:
T
- the type of nodes in this graph.
- All Superinterfaces:
EdgeManager<T>
,Iterable<T>
,NodeManager<T>
- All Known Subinterfaces:
CallGraph
,ControlFlowGraph<I,
,T> HeapGraph<T>
,IFlowGraph
,ISDG
,ISupergraph<T,
,P> LabeledGraph<T,
,U> MinimalCFG<T>
,NumberedGraph<T>
,NumberedLabeledGraph<T,
,I> OrderedMultiGraph<T>
,SerializableGraph<T>
- All Known Implementing Classes:
AbstractCFG
,AbstractDemandFlowGraph
,AbstractFlowGraph
,AbstractGraph
,AbstractInterproceduralCFG
,AbstractLabeledGraph
,AbstractNumberedGraph
,AbstractNumberedLabeledGraph
,AstCallGraph
,AstInducedCFG
,AstTranslator.AstCFG
,AstTranslator.IncipientCFG
,BackwardsSupergraph
,BasicCallGraph
,BasicGraph
,BasicHeapGraph
,BasicOrderedMultiGraph
,CHACallGraph
,CISDG
,ControlDependenceGraph
,CrossLanguageCallGraph
,DelegatingCFG
,DelegatingExplicitCallGraph
,DelegatingGraph
,DelegatingNumberedGraph
,DemandPointerFlowGraph
,DemandValueFlowGraph
,DexCFG
,EdgeFilteredNumberedGraph
,ExplicitCallGraph
,ExplodedControlFlowGraph
,ExplodedInterproceduralCFG
,ExtensionGraph
,HeapGraphImpl
,ICFGSupergraph
,InducedCFG
,InterproceduralCFG
,InvertedGraph
,InvertedNumberedGraph
,JSCallGraph
,JSInducedCFG
,MutableCFG
,PartialCallGraph
,PDG
,PrefixTransferGraph
,PrunedCallGraph
,PrunedCFG
,RandomGraph
,RandomGraph.IntegerRandomGraph
,SDG
,SelfLoopAddedGraph
,ShrikeCFG
,SimpleDemandPointerFlowGraph
,SlowSparseNumberedGraph
,SlowSparseNumberedLabeledGraph
,SparseNumberedGraph
,SSACFG
,UriPrefixTransferGraph
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
Modifier and TypeMethodDescriptionvoid
remove a node and all its incident edgesMethods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode, stream
-
Method Details
-
removeNodeAndEdges
remove a node and all its incident edges- Throws:
UnsupportedOperationException
- if the graph implementation does not allow removal
-