soot.jimple.internal
Class JIfStmt

java.lang.Object
  extended by soot.tagkit.AbstractHost
      extended by soot.AbstractUnit
          extended by soot.jimple.internal.AbstractStmt
              extended by soot.jimple.internal.JIfStmt
All Implemented Interfaces:
Serializable, Context, ConvertToBaf, IfStmt, Stmt, Host, Unit, Switchable
Direct Known Subclasses:
GIfStmt

public class JIfStmt
extends AbstractStmt
implements IfStmt

See Also:
Serialized Form

Field Summary
 
Fields inherited from class soot.AbstractUnit
emptyList
 
Constructor Summary
protected JIfStmt(ValueBox conditionBox, UnitBox targetBox)
           
  JIfStmt(Value condition, Unit target)
           
  JIfStmt(Value condition, UnitBox target)
           
 
Method Summary
 void apply(Switch sw)
          Used to implement the Switchable construct.
 boolean branches()
          Returns true if execution after this statement does not necessarily continue at the following statement.
 Object clone()
          Returns a deep clone of this object.
 void convertToBaf(JimpleToBafContext context, List<Unit> out)
           
 boolean fallsThrough()
          Returns true if execution after this statement may continue at the following statement.
 Value getCondition()
           
 ValueBox getConditionBox()
           
 Stmt getTarget()
           
 UnitBox getTargetBox()
           
 List getUnitBoxes()
          Returns a list of Boxes containing Units defined in this Unit; typically branch targets.
 List getUseBoxes()
          Returns a list of Boxes containing Values used in this Unit.
 void setCondition(Value condition)
          condition must be soot.jimple.ConditionExpr
 void setTarget(Unit target)
           
 String toString()
           
 void toString(UnitPrinter up)
           
 
Methods inherited from class soot.jimple.internal.AbstractStmt
containsArrayRef, containsFieldRef, containsInvokeExpr, getArrayRef, getArrayRefBox, getFieldRef, getFieldRefBox, getInvokeExpr, getInvokeExprBox
 
Methods inherited from class soot.AbstractUnit
addBoxPointingToThis, clearUnitBoxes, getBoxesPointingToThis, getDefBoxes, getUseAndDefBoxes, redirectJumpsToThisTo, removeBoxPointingToThis
 
Methods inherited from class soot.tagkit.AbstractHost
addAllTagsOf, addTag, getTag, getTags, hasTag, removeAllTags, removeTag
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface soot.jimple.Stmt
containsArrayRef, containsFieldRef, containsInvokeExpr, getArrayRef, getArrayRefBox, getFieldRef, getFieldRefBox, getInvokeExpr, getInvokeExprBox
 
Methods inherited from interface soot.Unit
addBoxPointingToThis, clearUnitBoxes, getBoxesPointingToThis, getDefBoxes, getUseAndDefBoxes, redirectJumpsToThisTo, removeBoxPointingToThis
 
Methods inherited from interface soot.tagkit.Host
addAllTagsOf, addTag, getTag, getTags, hasTag, removeAllTags, removeTag
 

Constructor Detail

JIfStmt

public JIfStmt(Value condition,
               Unit target)

JIfStmt

public JIfStmt(Value condition,
               UnitBox target)

JIfStmt

protected JIfStmt(ValueBox conditionBox,
                  UnitBox targetBox)
Method Detail

clone

public Object clone()
Description copied from class: AbstractUnit
Returns a deep clone of this object.

Specified by:
clone in interface Unit
Specified by:
clone in class AbstractUnit

toString

public String toString()
Overrides:
toString in class Object

toString

public void toString(UnitPrinter up)
Specified by:
toString in interface Stmt
Specified by:
toString in interface Unit

getCondition

public Value getCondition()
Specified by:
getCondition in interface IfStmt

setCondition

public void setCondition(Value condition)
Description copied from interface: IfStmt
condition must be soot.jimple.ConditionExpr

Specified by:
setCondition in interface IfStmt

getConditionBox

public ValueBox getConditionBox()
Specified by:
getConditionBox in interface IfStmt

getTarget

public Stmt getTarget()
Specified by:
getTarget in interface IfStmt

setTarget

public void setTarget(Unit target)
Specified by:
setTarget in interface IfStmt

getTargetBox

public UnitBox getTargetBox()
Specified by:
getTargetBox in interface IfStmt

getUseBoxes

public List getUseBoxes()
Description copied from class: AbstractUnit
Returns a list of Boxes containing Values used in this Unit. The list of boxes is dynamically updated as the structure changes. Note that they are returned in usual evaluation order. (this is important for aggregation)

Specified by:
getUseBoxes in interface Unit
Overrides:
getUseBoxes in class AbstractUnit

getUnitBoxes

public List getUnitBoxes()
Description copied from class: AbstractUnit
Returns a list of Boxes containing Units defined in this Unit; typically branch targets. The list of boxes is dynamically updated as the structure changes.

Specified by:
getUnitBoxes in interface Unit
Overrides:
getUnitBoxes in class AbstractUnit

apply

public void apply(Switch sw)
Description copied from class: AbstractUnit
Used to implement the Switchable construct.

Specified by:
apply in interface Switchable
Overrides:
apply in class AbstractUnit

convertToBaf

public void convertToBaf(JimpleToBafContext context,
                         List<Unit> out)
Specified by:
convertToBaf in interface ConvertToBaf
Overrides:
convertToBaf in class AbstractStmt

fallsThrough

public boolean fallsThrough()
Description copied from interface: Unit
Returns true if execution after this statement may continue at the following statement. GotoStmt will return false but IfStmt will return true.

Specified by:
fallsThrough in interface Unit

branches

public boolean branches()
Description copied from interface: Unit
Returns true if execution after this statement does not necessarily continue at the following statement. GotoStmt and IfStmt will both return true.

Specified by:
branches in interface Unit