Class JIfStmt

java.lang.Object
sootup.core.jimple.common.stmt.AbstractStmt
sootup.core.jimple.common.stmt.JIfStmt
All Implemented Interfaces:
EquivTo, BranchingStmt, FallsThroughStmt, Stmt, Acceptor<StmtVisitor>

public final class JIfStmt extends AbstractStmt implements BranchingStmt, FallsThroughStmt
If the condition is true, jumps to the target, otherwise continues to the next stmt. The first successor (index=0) is the fallsthrough Stmt and the second successor (index=1) is the rbanching one.
  • Field Details

  • Constructor Details

  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public void toString(@NonNull StmtPrinter stmtPrinter)
      Specified by:
      toString in interface Stmt
    • getCondition

      public @NonNull AbstractConditionExpr getCondition()
    • getTargetStmts

      public @NonNull List<Stmt> getTargetStmts(@NonNull Body body)
      Specified by:
      getTargetStmts in interface BranchingStmt
    • getExpectedSuccessorCount

      public int getExpectedSuccessorCount()
      Description copied from class: AbstractStmt
      Returns the amount of unexceptional successors the Stmt needs to have in the StmtGraph.
      Specified by:
      getExpectedSuccessorCount in interface Stmt
      Overrides:
      getExpectedSuccessorCount in class AbstractStmt
    • getUses

      public @NonNull Stream<Value> getUses()
      Description copied from class: AbstractStmt
      Returns a list of Values used in this Stmt. Note that they are returned in usual evaluation order.
      Specified by:
      getUses in interface Stmt
      Overrides:
      getUses in class AbstractStmt
    • accept

      public <V extends StmtVisitor> V accept(@NonNull V v)
      Description copied from interface: Acceptor
      Called when this object is visited.
      Specified by:
      accept in interface Acceptor<StmtVisitor>
    • fallsThrough

      public boolean fallsThrough()
      Description copied from interface: Stmt
      Returns true if execution after this statement may continue at the following statement. (e.g. GotoStmt will return false and e.g. IfStmt will return true).
      Specified by:
      fallsThrough in interface FallsThroughStmt
      Specified by:
      fallsThrough in interface Stmt
    • branches

      public boolean branches()
      Description copied from interface: Stmt
      Returns true if execution after this statement does not necessarily continue at the following statement. The BranchingStmt's GotoStmt, JSwitchStmt and IfStmt will return true.
      Specified by:
      branches in interface BranchingStmt
      Specified by:
      branches in interface Stmt
    • equivTo

      public boolean equivTo(@NonNull Object o, @NonNull JimpleComparator comparator)
      Description copied from interface: EquivTo
      Returns true if this object is equivalent to o according to the given comparator.
      Specified by:
      equivTo in interface EquivTo
    • equivHashCode

      public int equivHashCode()
      Description copied from interface: EquivTo
      Returns a (not necessarily fixed) hash code for this object. This hash code coincides with equivTo; it is undefined in the presence of mutable objects. The contract is defined in JimpleComparator.
      Specified by:
      equivHashCode in interface EquivTo
    • withCondition

      public @NonNull JIfStmt withCondition(@NonNull AbstractConditionExpr condition)
    • withPositionInfo

      public @NonNull JIfStmt withPositionInfo(@NonNull StmtPositionInfo positionInfo)