public class TryCatchDetails
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private CFG |
cfg
back link to the control flow graph
|
private Label |
end
the label identifying the end of the try catch block
|
private Label |
handler
the label identifying the start of the try catch block handler
|
private boolean |
isTriggerHandler
true if this is a trigger handler otherwise false
|
private java.util.List<CodeLocation> |
openEnters
a list of monitor enter instructions which are opened within the scope of this try catch block
and hence which may require closing in the associated handler
|
private java.util.List<TryCatchDetails> |
shadowRegions
A list of details for all the try catch regions which shadow this region i.e.
|
private Label |
start
the label identifying the start of the try catch block
|
private java.lang.String |
type
the name of the exception type handled by the handler or null if it is a catch all handler
|
Constructor and Description |
---|
TryCatchDetails(CFG cfg,
Label start,
Label end,
Label handler,
java.lang.String type,
boolean isTriggerHandler)
construct a try catch details instance
|
Modifier and Type | Method and Description |
---|---|
void |
addOpenEnter(CodeLocation openEnter)
add a new monitor enter location to the list of open locations associated with this handler
maintaining the reverse position ordering
|
void |
addOpenLocations(java.util.List<CodeLocation> openMonitorEnters)
add all the open locations associated with this handler to the supplied list of open locations
maintaining the reverse position ordering
|
void |
addShadowRegion(TryCatchDetails tryCatchDetails)
add a shadowing region to the list of regions which shadow this one
|
boolean |
containsOpenEnter(CodeLocation openEnter)
check if a monitor enter location belongs to the list of open locations associated with this handler
|
Label |
getEnd() |
Label |
getHandler() |
java.util.Iterator<CodeLocation> |
getOpenEnters() |
java.util.List<TryCatchDetails> |
getShadowRegions() |
Label |
getStart() |
java.lang.String |
getType() |
boolean |
isTriggerHandler() |
private CFG cfg
private Label start
private Label end
private Label handler
private java.util.List<CodeLocation> openEnters
private java.lang.String type
private boolean isTriggerHandler
private java.util.List<TryCatchDetails> shadowRegions
public TryCatchDetails(CFG cfg, Label start, Label end, Label handler, java.lang.String type, boolean isTriggerHandler)
cfg
- start
- end
- handler
- type
- isTriggerHandler
- public Label getStart()
public Label getEnd()
public Label getHandler()
public java.lang.String getType()
public boolean isTriggerHandler()
public void addOpenEnter(CodeLocation openEnter)
openEnter
- public boolean containsOpenEnter(CodeLocation openEnter)
openEnter
- public void addOpenLocations(java.util.List<CodeLocation> openMonitorEnters)
openMonitorEnters
- public java.util.Iterator<CodeLocation> getOpenEnters()
public void addShadowRegion(TryCatchDetails tryCatchDetails)
tryCatchDetails
- public java.util.List<TryCatchDetails> getShadowRegions()