soot.jimple.internal
Class JTableSwitchStmt

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

public class JTableSwitchStmt
extends AbstractStmt
implements TableSwitchStmt

See Also:
Serialized Form

Field Summary
 
Fields inherited from class soot.AbstractUnit
emptyList
 
Constructor Summary
protected JTableSwitchStmt(ValueBox keyBox, int lowIndex, int highIndex, UnitBox[] targetBoxes, UnitBox defaultTargetBox)
           
  JTableSwitchStmt(Value key, int lowIndex, int highIndex, List<Object> targets, UnitBox defaultTarget)
           
  JTableSwitchStmt(Value key, int lowIndex, int highIndex, List targets, Unit defaultTarget)
           
 
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.
 Unit getDefaultTarget()
           
 UnitBox getDefaultTargetBox()
           
 int getHighIndex()
           
 Value getKey()
           
 ValueBox getKeyBox()
           
 int getLowIndex()
           
 Unit getTarget(int index)
           
 UnitBox getTargetBox(int index)
           
 List getTargets()
           
 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 setDefaultTarget(Unit defaultTarget)
           
 void setHighIndex(int highIndex)
           
 void setKey(Value key)
           
 void setLowIndex(int lowIndex)
           
 void setTarget(int index, Unit target)
           
 void setTargets(List<Unit> targets)
           
 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

JTableSwitchStmt

public JTableSwitchStmt(Value key,
                        int lowIndex,
                        int highIndex,
                        List targets,
                        Unit defaultTarget)

JTableSwitchStmt

public JTableSwitchStmt(Value key,
                        int lowIndex,
                        int highIndex,
                        List<Object> targets,
                        UnitBox defaultTarget)

JTableSwitchStmt

protected JTableSwitchStmt(ValueBox keyBox,
                           int lowIndex,
                           int highIndex,
                           UnitBox[] targetBoxes,
                           UnitBox defaultTargetBox)
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

getDefaultTarget

public Unit getDefaultTarget()
Specified by:
getDefaultTarget in interface TableSwitchStmt

setDefaultTarget

public void setDefaultTarget(Unit defaultTarget)
Specified by:
setDefaultTarget in interface TableSwitchStmt

getDefaultTargetBox

public UnitBox getDefaultTargetBox()
Specified by:
getDefaultTargetBox in interface TableSwitchStmt

getKey

public Value getKey()
Specified by:
getKey in interface TableSwitchStmt

setKey

public void setKey(Value key)
Specified by:
setKey in interface TableSwitchStmt

getKeyBox

public ValueBox getKeyBox()
Specified by:
getKeyBox in interface TableSwitchStmt

setLowIndex

public void setLowIndex(int lowIndex)
Specified by:
setLowIndex in interface TableSwitchStmt

setHighIndex

public void setHighIndex(int highIndex)
Specified by:
setHighIndex in interface TableSwitchStmt

getLowIndex

public int getLowIndex()
Specified by:
getLowIndex in interface TableSwitchStmt

getHighIndex

public int getHighIndex()
Specified by:
getHighIndex in interface TableSwitchStmt

getTargets

public List getTargets()
Specified by:
getTargets in interface TableSwitchStmt

getTarget

public Unit getTarget(int index)
Specified by:
getTarget in interface TableSwitchStmt

setTarget

public void setTarget(int index,
                      Unit target)
Specified by:
setTarget in interface TableSwitchStmt

setTargets

public void setTargets(List<Unit> targets)
Specified by:
setTargets in interface TableSwitchStmt

getTargetBox

public UnitBox getTargetBox(int index)
Specified by:
getTargetBox in interface TableSwitchStmt

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