org.jboss.byteman.agent.adapter
Class ExitCheckAdapter.ExitCheckMethodAdapter
java.lang.Object
MethodAdapter
org.jboss.byteman.agent.adapter.RuleMethodAdapter
org.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
org.jboss.byteman.agent.adapter.ExitCheckAdapter.ExitCheckMethodAdapter
- Enclosing class:
- ExitCheckAdapter
private class ExitCheckAdapter.ExitCheckMethodAdapter
- extends RuleCheckMethodAdapter
a method visitor used to add a rule event trigger call to a method
Method Summary |
void |
visitEnd()
|
void |
visitInsn(int opcode)
we need to identify return instructions which are inserted because of other rules |
void |
visitLabel(Label label)
each time we visit a label we set or clear flag inhibit depending upon whether the label
identifies an EarlyReturnException block or not in order to avoid inserting triggers
for returns added by our own exception handling code |
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
Visits a try catch block and records the label of the handler start if the
exception type EarlyReturnException so we can later avoid inserting a rule
trigger. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
access
private int access
name
private java.lang.String name
descriptor
private java.lang.String descriptor
signature
private java.lang.String signature
exceptions
private java.lang.String[] exceptions
startLabels
private java.util.Vector<Label> startLabels
endLabels
private java.util.Vector<Label> endLabels
inhibit
private boolean inhibit
ExitCheckAdapter.ExitCheckMethodAdapter
ExitCheckAdapter.ExitCheckMethodAdapter(MethodVisitor mv,
TransformContext transformContext,
int access,
java.lang.String name,
java.lang.String descriptor,
java.lang.String signature,
java.lang.String[] exceptions)
visitTryCatchBlock
public void visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
- Visits a try catch block and records the label of the handler start if the
exception type EarlyReturnException so we can later avoid inserting a rule
trigger.
- Parameters:
start
- beginning of the exception handler's scope (inclusive).end
- end of the exception handler's scope (exclusive).handler
- beginning of the exception handler's code.type
- internal name of the type of exceptions handled by the
handler, or null to catch any exceptions (for "finally"
blocks).
- Throws:
java.lang.IllegalArgumentException
- if one of the labels has already been
visited by this visitor (by the visitLabel
method).
visitLabel
public void visitLabel(Label label)
- each time we visit a label we set or clear flag inhibit depending upon whether the label
identifies an EarlyReturnException block or not in order to avoid inserting triggers
for returns added by our own exception handling code
- Parameters:
label
-
visitInsn
public void visitInsn(int opcode)
- we need to identify return instructions which are inserted because of other rules
- Parameters:
opcode
-
visitEnd
public void visitEnd()