public final class ControlFlowNode extends java.lang.Object implements java.lang.Comparable<ControlFlowNode>
| Modifier and Type | Field and Description |
|---|---|
static com.strobel.core.Predicate<ControlFlowNode> |
REACHABLE_PREDICATE |
| Constructor and Description |
|---|
ControlFlowNode(int blockIndex,
ExceptionHandler exceptionHandler,
ControlFlowNode endFinallyNode) |
ControlFlowNode(int blockIndex,
Instruction start,
Instruction end) |
ControlFlowNode(int blockIndex,
int offset,
ControlFlowNodeType nodeType) |
public static final com.strobel.core.Predicate<ControlFlowNode> REACHABLE_PREDICATE
public ControlFlowNode(int blockIndex,
int offset,
ControlFlowNodeType nodeType)
public ControlFlowNode(int blockIndex,
Instruction start,
Instruction end)
public ControlFlowNode(int blockIndex,
ExceptionHandler exceptionHandler,
ControlFlowNode endFinallyNode)
public final int getBlockIndex()
public final int getOffset()
public final ControlFlowNodeType getNodeType()
public final ControlFlowNode getEndFinallyNode()
public final java.util.List<ControlFlowNode> getDominatorTreeChildren()
public final java.util.Set<ControlFlowNode> getDominanceFrontier()
public final java.util.List<ControlFlowEdge> getIncoming()
public final java.util.List<ControlFlowEdge> getOutgoing()
public final boolean isVisited()
public final boolean isReachable()
public final ControlFlowNode getCopyFrom()
public final ControlFlowNode getImmediateDominator()
public final Instruction getStart()
public final Instruction getEnd()
public final ExceptionHandler getExceptionHandler()
public final java.lang.Object getUserData()
public final void setVisited(boolean visited)
public final void setCopyFrom(ControlFlowNode copyFrom)
public final void setImmediateDominator(ControlFlowNode immediateDominator)
public final void setStart(Instruction start)
public final void setEnd(Instruction end)
public final void setExceptionHandler(ExceptionHandler exceptionHandler)
public final void setUserData(java.lang.Object userData)
public final boolean succeeds(ControlFlowNode other)
public final boolean precedes(ControlFlowNode other)
public final java.lang.Iterable<ControlFlowNode> getPredecessors()
public final java.lang.Iterable<ControlFlowNode> getSuccessors()
public final java.lang.Iterable<Instruction> getInstructions()
public final void traversePreOrder(com.strobel.functions.Function<ControlFlowNode,java.lang.Iterable<ControlFlowNode>> children, com.strobel.functions.Block<ControlFlowNode> visitAction)
public final void traversePostOrder(com.strobel.functions.Function<ControlFlowNode,java.lang.Iterable<ControlFlowNode>> children, com.strobel.functions.Block<ControlFlowNode> visitAction)
public final boolean dominates(ControlFlowNode node)
public final java.lang.String toString()
toString in class java.lang.Objectpublic int compareTo(ControlFlowNode o)
compareTo in interface java.lang.Comparable<ControlFlowNode>