public interface IAnnotationCoprocessor
CLocalVariable.CASM, COverride).| Modifier and Type | Method and Description |
|---|---|
void |
postprocess(TransformerManager transformerManager,
org.objectweb.asm.tree.ClassNode transformedClass,
org.objectweb.asm.tree.MethodNode transformedMethod,
java.util.List<org.objectweb.asm.tree.MethodInsnNode> transformerMethodCalls,
org.objectweb.asm.tree.ClassNode transformer,
org.objectweb.asm.tree.MethodNode transformerMethod)
Postprocess the transformer and target method after the annotation handler injected calls to the target method.
The transformerMethodCalls list only contains direct calls to the transformer method.Example usage: Add the parameter array back and modify the calls to the transformer method to use the parameter array. |
org.objectweb.asm.tree.MethodNode |
preprocess(TransformerManager transformerManager,
org.objectweb.asm.tree.ClassNode transformedClass,
org.objectweb.asm.tree.MethodNode transformedMethod,
org.objectweb.asm.tree.ClassNode transformer,
org.objectweb.asm.tree.MethodNode transformerMethod)
Preprocess the target method before the annotation handler injects calls to the target method.
This happens before the transformer method is verified by the annotation handler. Example usage: Merge all parameters into one array and add it to the end of the method. |
org.objectweb.asm.tree.MethodNode |
transform(TransformerManager transformerManager,
org.objectweb.asm.tree.ClassNode transformedClass,
org.objectweb.asm.tree.MethodNode transformedMethod,
org.objectweb.asm.tree.ClassNode transformer,
org.objectweb.asm.tree.MethodNode transformerMethod)
Process the target method before the annotation handler injects calls to the target method.
This happens before the transformer method is verified by the annotation handler but after preprocess(TransformerManager, ClassNode, MethodNode, ClassNode, MethodNode).The calls to this method are in reverse order of the preprocess(TransformerManager, ClassNode, MethodNode, ClassNode, MethodNode) calls.Example usage: Remove the previously added parameter array so the transformer method can be verified by the annotation handler. |
org.objectweb.asm.tree.MethodNode preprocess(TransformerManager transformerManager, org.objectweb.asm.tree.ClassNode transformedClass, org.objectweb.asm.tree.MethodNode transformedMethod, org.objectweb.asm.tree.ClassNode transformer, org.objectweb.asm.tree.MethodNode transformerMethod)
Merge all parameters into one array and add it to the end of the method.transformerManager - The transformer managertransformedClass - The target class nodetransformedMethod - The target method nodetransformer - The transformer class nodetransformerMethod - The transformer method nodetransformerMethod nodeorg.objectweb.asm.tree.MethodNode transform(TransformerManager transformerManager, org.objectweb.asm.tree.ClassNode transformedClass, org.objectweb.asm.tree.MethodNode transformedMethod, org.objectweb.asm.tree.ClassNode transformer, org.objectweb.asm.tree.MethodNode transformerMethod)
preprocess(TransformerManager, ClassNode, MethodNode, ClassNode, MethodNode).preprocess(TransformerManager, ClassNode, MethodNode, ClassNode, MethodNode) calls.Remove the previously added parameter array so the transformer method can be verified by the annotation handler.transformerManager - The transformer managertransformedClass - The target class nodetransformedMethod - The target method nodetransformer - The transformer class nodetransformerMethod - The transformer method nodetransformerMethod nodevoid postprocess(TransformerManager transformerManager, org.objectweb.asm.tree.ClassNode transformedClass, org.objectweb.asm.tree.MethodNode transformedMethod, java.util.List<org.objectweb.asm.tree.MethodInsnNode> transformerMethodCalls, org.objectweb.asm.tree.ClassNode transformer, org.objectweb.asm.tree.MethodNode transformerMethod)
transformerMethodCalls list only contains direct calls to the transformer method.Add the parameter array back and modify the calls to the transformer method to use the parameter array.transformerManager - The transformer managertransformedClass - The target class nodetransformedMethod - The target method nodetransformerMethodCalls - The list of calls to the transformer methodtransformer - The transformer class nodetransformerMethod - The transformer method node