| java.lang.Object com.tc.asm.ClassAdapter com.tc.aspectwerkz.transform.inlining.weaver.JoinPointInitVisitor
JoinPointInitVisitor | public class JoinPointInitVisitor extends ClassAdapter implements TransformationConstants(Code) | | A ClassAdapter that take care of all weaved class and add the glue between the class and its JIT dependencies.
Adds a 'private static final Class aw$clazz' field a 'private static void ___AW_$_AW_$initJoinPoints()' method
and patches the 'clinit' method.
If the class has been made advisable, we also add a ___AW_$_AW_$emittedJoinPoints fields that gets populated.
author: Alexandre Vasseur author: Jonas BonŽr author: TODO: for multi weaving, we could go on in adding several AW initJoinPoints_xxWeaveCount method, but then cannot be author: done with RW |
Inner Class :public class InsertBeforeClinitCodeAdapter extends MethodAdapter | |
Inner Class :public class InsertBeforeInitJoinPointsCodeAdapter extends MethodAdapter | |
visitEnd | public void visitEnd()(Code) | | Finalize the visit. Add static class field if needed, add initJoinPoints method if needed, add if
needed.
|
visitField | public FieldVisitor visitField(int access, String name, String desc, String signature, Object value)(Code) | | Remember if we have already the static class field for multi-weaving scheme.
Parameters: access - Parameters: name - Parameters: desc - Parameters: signature - Parameters: value - |
visitMethod | public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)(Code) | | Visits the methods. If the AW joinPointsInit method is found, remember that, it means we are in a multi-weaving
scheme. Patch the 'clinit' method if already present.
TODO: multi-weaving will lead to several invocation of AW initJoinPoints and several assigment of __AW_Clazz in the patched clinit which slows down a bit the load time
See Also: org.objectweb.asm.ClassVisitor.visitMethod(intStringStringStringString[]) |
Methods inherited from com.tc.asm.ClassAdapter | public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)(Code)(Java Doc) public AnnotationVisitor visitAnnotation(String desc, boolean visible)(Code)(Java Doc) public void visitAttribute(Attribute attr)(Code)(Java Doc) public void visitEnd()(Code)(Java Doc) public FieldVisitor visitField(int access, String name, String desc, String signature, Object value)(Code)(Java Doc) public void visitInnerClass(String name, String outerName, String innerName, int access)(Code)(Java Doc) public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)(Code)(Java Doc) public void visitOuterClass(String owner, String name, String desc)(Code)(Java Doc) public void visitSource(String source, String debug)(Code)(Java Doc)
|
|
|