Package sootup.core.graph
Class BackwardsControlFlowGraph<V extends BasicBlock<V>>
java.lang.Object
sootup.core.graph.ControlFlowGraph<V>
sootup.core.graph.ForwardingControlFlowGraph<V>
sootup.core.graph.BackwardsControlFlowGraph<V>
public class BackwardsControlFlowGraph<V extends BasicBlock<V>>
extends ForwardingControlFlowGraph<V>
- Author:
- Zun Wang
-
Field Summary
Fields inherited from class sootup.core.graph.ForwardingControlFlowGraph
backingGraph -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription@NonNull List<? extends BasicBlock<?>>@NonNull Collection<Stmt>getNodes()returns the nodes in this graph in a non-deterministic order (->Set) to get the nodes in linearized, ordered manner use iterator() or getStmts.booleanhasEdgeConnecting(@NonNull Stmt source, @NonNull Stmt target) returns true if there is a flow between source and target throws an Exception if at least one of the parameters is not contained in the graph.intreturns the amount of ingoing flows into nodeintreturns the amount of flows that start from nodepredecessors(@NonNull Stmt node) returns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e. if a JSwitchStmt has multiple cases that brnach to `node`successors(@NonNull Stmt node) returns the outgoing flows of node as ordered List.Methods inherited from class sootup.core.graph.ForwardingControlFlowGraph
containsNode, degree, exceptionalPredecessors, exceptionalSuccessors, getBlockOf, getBlocks, getStartingStmtBlock, getTailStmtBlocks, iterator, removeExceptionalFlowFromAllBlocksMethods inherited from class sootup.core.graph.ControlFlowGraph
equals, getAllSuccessors, getBlockIterator, getBranchTargetsOf, getEntrypoints, getExtendedBasicBlockPathBetween, getStmts, getTails, isStmtBranchTarget, toString, validateStmtConnectionsInGraphMethods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
BackwardsControlFlowGraph
-
-
Method Details
-
getStartingStmt
- Overrides:
getStartingStmtin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
getStartingStmts
-
getNodes
Description copied from class:ControlFlowGraphreturns the nodes in this graph in a non-deterministic order (->Set) to get the nodes in linearized, ordered manner use iterator() or getStmts.- Overrides:
getNodesin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
getBlocksSorted
- Overrides:
getBlocksSortedin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
predecessors
Description copied from class:ControlFlowGraphreturns the ingoing flows to node as an List with no reliable/specific order and possibly duplicate entries i.e. if a JSwitchStmt has multiple cases that brnach to `node`- Overrides:
predecessorsin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
successors
Description copied from class:ControlFlowGraphreturns the outgoing flows of node as ordered List. The List can have duplicate entries!- Overrides:
successorsin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
inDegree
Description copied from class:ControlFlowGraphreturns the amount of ingoing flows into node- Overrides:
inDegreein classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
outDegree
Description copied from class:ControlFlowGraphreturns the amount of flows that start from node- Overrides:
outDegreein classForwardingControlFlowGraph<V extends BasicBlock<V>>
-
hasEdgeConnecting
Description copied from class:ControlFlowGraphreturns true if there is a flow between source and target throws an Exception if at least one of the parameters is not contained in the graph.- Overrides:
hasEdgeConnectingin classForwardingControlFlowGraph<V extends BasicBlock<V>>
-