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