Class RuleMethodAdapter

  • Direct Known Subclasses:
    RuleCheckMethodAdapter, RuleGeneratorAdapter

    public class RuleMethodAdapter
    extends org.objectweb.asm.MethodVisitor
    generic rule method adapter which extends GeneratorAdpater and adds the ability to track in-scope local variables
    • Constructor Summary

      Constructors 
      Constructor Description
      RuleMethodAdapter​(org.objectweb.asm.MethodVisitor mv, TransformContext transformContext, int access, java.lang.String name, java.lang.String desc, Rule rule)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getTriggerClassName()  
      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, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int index)  
      • Methods inherited from class org.objectweb.asm.MethodVisitor

        visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn, visitVarInsn
      • 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.
      • 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​(org.objectweb.asm.MethodVisitor mv,
                                 TransformContext transformContext,
                                 int access,
                                 java.lang.String name,
                                 java.lang.String desc,
                                 Rule rule)
    • Method Detail

      • getTriggerClassName

        public java.lang.String getTriggerClassName()
      • visitLocalVariable

        public void visitLocalVariable​(java.lang.String name,
                                       java.lang.String desc,
                                       java.lang.String signature,
                                       org.objectweb.asm.Label start,
                                       org.objectweb.asm.Label end,
                                       int index)
        Overrides:
        visitLocalVariable in class org.objectweb.asm.MethodVisitor