Class TryCatchDetails
- java.lang.Object
-
- org.jboss.byteman.agent.adapter.cfg.TryCatchDetails
-
public class TryCatchDetails extends java.lang.Object
auxiliary used by CFG to store details of a specific try catch block
-
-
Field Summary
Fields Modifier and Type Field Description private CFG
cfg
back link to the control flow graphprivate org.objectweb.asm.Label
end
the label identifying the end of the try catch blockprivate org.objectweb.asm.Label
handler
the label identifying the start of the try catch block handlerprivate boolean
isTriggerHandler
true if this is a trigger handler otherwise falseprivate 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 handlerprivate java.util.List<TryCatchDetails>
shadowRegions
A list of details for all the try catch regions which shadow this region i.e.private org.objectweb.asm.Label
start
the label identifying the start of the try catch blockprivate java.lang.String
type
the name of the exception type handled by the handler or null if it is a catch all handler
-
Constructor Summary
Constructors Constructor Description TryCatchDetails(CFG cfg, org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, java.lang.String type, boolean isTriggerHandler)
construct a try catch details instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 orderingvoid
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 orderingvoid
addShadowRegion(TryCatchDetails tryCatchDetails)
add a shadowing region to the list of regions which shadow this oneboolean
containsOpenEnter(CodeLocation openEnter)
check if a monitor enter location belongs to the list of open locations associated with this handlerorg.objectweb.asm.Label
getEnd()
org.objectweb.asm.Label
getHandler()
java.util.Iterator<CodeLocation>
getOpenEnters()
java.util.List<TryCatchDetails>
getShadowRegions()
org.objectweb.asm.Label
getStart()
java.lang.String
getType()
boolean
hasShadowRegion(TryCatchDetails tryCatchDetails)
boolean
isTriggerHandler()
java.lang.String
toString()
-
-
-
Field Detail
-
cfg
private CFG cfg
back link to the control flow graph
-
start
private org.objectweb.asm.Label start
the label identifying the start of the try catch block
-
end
private org.objectweb.asm.Label end
the label identifying the end of the try catch block
-
handler
private org.objectweb.asm.Label handler
the label identifying the start of the try catch block handler
-
openEnters
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
-
type
private java.lang.String type
the name of the exception type handled by the handler or null if it is a catch all handler
-
isTriggerHandler
private boolean isTriggerHandler
true if this is a trigger handler otherwise false
-
shadowRegions
private java.util.List<TryCatchDetails> shadowRegions
A list of details for all the try catch regions which shadow this region i.e. which prevent exception control flow to it from an embedded region because they either catch everything or they catch the same type or a supertype of this exception.
-
-
Constructor Detail
-
TryCatchDetails
public TryCatchDetails(CFG cfg, org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, java.lang.String type, boolean isTriggerHandler)
construct a try catch details instance- Parameters:
cfg
- the control flow graphstart
- the try block startend
- the try block endhandler
- the handler block starttype
- the handled exception typeisTriggerHandler
- true if this handler handles Byteman errors
-
-
Method Detail
-
getStart
public org.objectweb.asm.Label getStart()
-
getEnd
public org.objectweb.asm.Label getEnd()
-
getHandler
public org.objectweb.asm.Label getHandler()
-
getType
public java.lang.String getType()
-
isTriggerHandler
public boolean isTriggerHandler()
-
addOpenEnter
public 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- Parameters:
openEnter
- the location of the monitor enter
-
containsOpenEnter
public boolean containsOpenEnter(CodeLocation openEnter)
check if a monitor enter location belongs to the list of open locations associated with this handler- Parameters:
openEnter
- the location of the monitor enter- Returns:
- true if it belongs ot the list
-
addOpenLocations
public 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- Parameters:
openMonitorEnters
- list of locations of the monitor enters
-
getOpenEnters
public java.util.Iterator<CodeLocation> getOpenEnters()
-
addShadowRegion
public void addShadowRegion(TryCatchDetails tryCatchDetails)
add a shadowing region to the list of regions which shadow this one- Parameters:
tryCatchDetails
- detaisl of a try catch block
-
getShadowRegions
public java.util.List<TryCatchDetails> getShadowRegions()
-
hasShadowRegion
public boolean hasShadowRegion(TryCatchDetails tryCatchDetails)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-