|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.AbstractTrap
public class AbstractTrap
Partial implementation of trap (exception catcher), used within Body classes.
| Field Summary | |
|---|---|
protected UnitBox |
beginUnitBox
The first unit being trapped. |
protected UnitBox |
endUnitBox
The unit just before the last unit being trapped. |
protected SootClass |
exception
The exception being caught. |
protected UnitBox |
handlerUnitBox
The unit to which execution flows after the caught exception is triggered. |
protected List |
unitBoxes
The list of unitBoxes referred to in this Trap (begin, end and handler. |
| Constructor Summary | |
|---|---|
protected |
AbstractTrap(SootClass exception,
UnitBox beginUnitBox,
UnitBox endUnitBox,
UnitBox handlerUnitBox)
Creates an AbstractTrap with the given exception, handler, begin and end units. |
| Method Summary | |
|---|---|
void |
clearUnitBoxes()
|
Object |
clone()
Performs a shallow clone of this trap. |
Unit |
getBeginUnit()
Returns the first trapped unit, unless this Trap
does not trap any units at all. |
UnitBox |
getBeginUnitBox()
Returns the box holding the unit returned by Trap.getBeginUnit(). |
Unit |
getEndUnit()
Returns the unit following the last trapped unit (that is, the first succeeding untrapped unit in the underlying Chain), unless this Trap does not trap
any units at all. |
UnitBox |
getEndUnitBox()
Returns the box holding the unit returned by Trap.getEndUnit(). |
SootClass |
getException()
Returns the exception being caught. |
Unit |
getHandlerUnit()
Returns the unit handling the exception being trapped. |
UnitBox |
getHandlerUnitBox()
Returns the box holding the exception handler's unit. |
List |
getUnitBoxes()
Returns the boxes for first, last and handler units. |
void |
setBeginUnit(Unit beginUnit)
Sets the value to be returned by Trap.getBeginUnit() to
beginUnit. |
void |
setEndUnit(Unit endUnit)
Sets the value to be returned by Trap.getEndUnit() to
endUnit. |
void |
setException(SootClass exception)
Sets the exception being caught to exception. |
void |
setHandlerUnit(Unit handlerUnit)
Sets the unit handling the exception to handlerUnit. |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected transient SootClass exception
protected UnitBox beginUnitBox
protected UnitBox endUnitBox
protected UnitBox handlerUnitBox
protected List unitBoxes
| Constructor Detail |
|---|
protected AbstractTrap(SootClass exception,
UnitBox beginUnitBox,
UnitBox endUnitBox,
UnitBox handlerUnitBox)
| Method Detail |
|---|
public Unit getBeginUnit()
TrapReturns the first trapped unit, unless this Trap
does not trap any units at all.
If this is a degenerate Trap which
traps no units (which can occur if all the units originally trapped by
the exception handler have been optimized away), returns an
untrapped unit. The returned unit will likely be the first unit
remaining after the point where the trapped units were once
located, but the only guarantee provided is that for such an
empty trap, getBeginUnit() will return the same value
as Trap.getEndUnit().
getBeginUnit in interface Trappublic Unit getEndUnit()
TrapReturns the unit following the last trapped unit (that is, the
first succeeding untrapped unit in the underlying
Chain), unless this Trap does not trap
any units at all.
In the case of a degenerate Trap which traps
no units, returns the same untrapped unit as
getBeginUnit()
Note that a weakness of marking the end of the trapped region
with the first untrapped unit is that Soot has no good mechanism
for describing a Trap which traps the last unit
in a method.
getEndUnit in interface Trappublic Unit getHandlerUnit()
Trap
getHandlerUnit in interface Trappublic UnitBox getHandlerUnitBox()
Trap
getHandlerUnitBox in interface Trappublic UnitBox getBeginUnitBox()
TrapTrap.getBeginUnit().
getBeginUnitBox in interface Trappublic UnitBox getEndUnitBox()
TrapTrap.getEndUnit().
getEndUnitBox in interface Trappublic List getUnitBoxes()
Trap
getUnitBoxes in interface TrapgetUnitBoxes in interface UnitBoxOwnerpublic void clearUnitBoxes()
clearUnitBoxes in interface UnitBoxOwnerpublic SootClass getException()
Trap
getException in interface Trappublic void setBeginUnit(Unit beginUnit)
TrapTrap.getBeginUnit() to
beginUnit.
setBeginUnit in interface Trappublic void setEndUnit(Unit endUnit)
TrapTrap.getEndUnit() to
endUnit.
setEndUnit in interface Trappublic void setHandlerUnit(Unit handlerUnit)
TraphandlerUnit.
setHandlerUnit in interface Trappublic void setException(SootClass exception)
Trapexception.
setException in interface Trappublic Object clone()
Trap
clone in interface Trapclone in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||