org.shiftone.jrat.inject.bytecode.asm
Class MethodCriteriaClassVisitor
java.lang.Object
org.shiftone.jrat.inject.bytecode.asm.MethodCriteriaClassVisitor
- All Implemented Interfaces:
- org.objectweb.asm.ClassVisitor
public class MethodCriteriaClassVisitor
- extends java.lang.Object
- implements org.objectweb.asm.ClassVisitor
- Author:
- jeff@shiftone.org (Jeff Drost)
Method Summary |
void |
setCriteria(MethodCriteria criteria)
|
void |
visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
when this method is called MethodCriteria.isMatch(className) is checked
to see if any injection is necessary. |
org.objectweb.asm.AnnotationVisitor |
visitAnnotation(java.lang.String desc,
boolean visible)
|
void |
visitAttribute(org.objectweb.asm.Attribute attr)
|
void |
visitEnd()
|
org.objectweb.asm.FieldVisitor |
visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
|
void |
visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
|
org.objectweb.asm.MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
when this method is called MethodCriteria.isMatch(className, methodName,
...) is checked to see if any injection is necessary for this method. |
void |
visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
|
void |
visitSource(java.lang.String source,
java.lang.String debug)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MethodCriteriaClassVisitor
public MethodCriteriaClassVisitor(org.objectweb.asm.ClassVisitor injector,
org.objectweb.asm.ClassVisitor bypass)
setCriteria
public void setCriteria(MethodCriteria criteria)
visit
public void visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
- when this method is called MethodCriteria.isMatch(className) is checked
to see if any injection is necessary. If not, then the default visitor is
set to bypass the injection process.
- Specified by:
visit
in interface org.objectweb.asm.ClassVisitor
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
- when this method is called MethodCriteria.isMatch(className, methodName,
...) is checked to see if any injection is necessary for this method. If
not, then the bypass visitor is used. Otherwise, the default visitor is
used (which was set in the class visit method).
- Specified by:
visitMethod
in interface org.objectweb.asm.ClassVisitor
visitSource
public void visitSource(java.lang.String source,
java.lang.String debug)
- Specified by:
visitSource
in interface org.objectweb.asm.ClassVisitor
visitOuterClass
public void visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
- Specified by:
visitOuterClass
in interface org.objectweb.asm.ClassVisitor
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc,
boolean visible)
- Specified by:
visitAnnotation
in interface org.objectweb.asm.ClassVisitor
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attr)
- Specified by:
visitAttribute
in interface org.objectweb.asm.ClassVisitor
visitInnerClass
public void visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
- Specified by:
visitInnerClass
in interface org.objectweb.asm.ClassVisitor
visitField
public org.objectweb.asm.FieldVisitor visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
- Specified by:
visitField
in interface org.objectweb.asm.ClassVisitor
visitEnd
public void visitEnd()
- Specified by:
visitEnd
in interface org.objectweb.asm.ClassVisitor