org.jboss.byteman.agent.adapter
Class RuleMethodAdapter

java.lang.Object
  extended by MethodAdapter
      extended by org.jboss.byteman.agent.adapter.RuleMethodAdapter
Direct Known Subclasses:
RuleCheckMethodAdapter, RuleGeneratorAdapter

public class RuleMethodAdapter
extends MethodAdapter

generic rule method adapter which extends GeneratorAdpater and adds the ability to track in-scope local variables


Nested Class Summary
protected static class RuleMethodAdapter.LocalVar
           
 
Field Summary
protected  int access
           
protected  java.lang.String descriptor
           
(package private)  java.util.HashMap<java.lang.String,java.util.LinkedList<RuleMethodAdapter.LocalVar>> localVarsByName
          a hashmap mapping local variable names to all local variables with that name.
protected  java.lang.String name
           
protected  Rule rule
           
protected  TransformContext transformContext
           
 
Constructor Summary
RuleMethodAdapter(MethodVisitor mv, TransformContext transformContext, int access, java.lang.String name, java.lang.String desc)
           
 
Method Summary
 java.lang.String getTriggerClass()
           
protected  java.util.List<RuleMethodAdapter.LocalVar> lookup(java.lang.String name)
           
 void visitLocalVariable(java.lang.String name, java.lang.String desc, java.lang.String signature, Label start, Label end, int index)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localVarsByName

java.util.HashMap<java.lang.String,java.util.LinkedList<RuleMethodAdapter.LocalVar>> localVarsByName
a hashmap mapping local variable names to all local variables with that name. note that although there may be more than one scope for a given local var name they will all have disjoint extents because Java does not permit shadowing.


transformContext

protected TransformContext transformContext

rule

protected Rule rule

access

protected int access

name

protected java.lang.String name

descriptor

protected java.lang.String descriptor
Constructor Detail

RuleMethodAdapter

public RuleMethodAdapter(MethodVisitor mv,
                         TransformContext transformContext,
                         int access,
                         java.lang.String name,
                         java.lang.String desc)
Method Detail

getTriggerClass

public java.lang.String getTriggerClass()

visitLocalVariable

public void visitLocalVariable(java.lang.String name,
                               java.lang.String desc,
                               java.lang.String signature,
                               Label start,
                               Label end,
                               int index)

lookup

protected java.util.List<RuleMethodAdapter.LocalVar> lookup(java.lang.String name)