Package net.bytebuddy.asm
Class Advice.Dispatcher.Delegating.Resolved.AdviceMethodWriter
- java.lang.Object
-
- net.bytebuddy.asm.Advice.Dispatcher.Delegating.Resolved.AdviceMethodWriter
-
- All Implemented Interfaces:
Advice.Dispatcher.Bound
- Direct Known Subclasses:
Advice.Dispatcher.Delegating.Resolved.AdviceMethodWriter.ForMethodEnter,Advice.Dispatcher.Delegating.Resolved.AdviceMethodWriter.ForMethodExit
- Enclosing class:
- Advice.Dispatcher.Delegating.Resolved
protected abstract static class Advice.Dispatcher.Delegating.Resolved.AdviceMethodWriter extends Object implements Advice.Dispatcher.Bound
A bound advice method that copies the code by first extracting the exception table and later appending the code of the method without copying any meta data.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAdvice.Dispatcher.Delegating.Resolved.AdviceMethodWriter.ForMethodEnterAn advice method writer for a method enter.protected static classAdvice.Dispatcher.Delegating.Resolved.AdviceMethodWriter.ForMethodExitAn advice method writer for a method exit.
-
Field Summary
Fields Modifier and Type Field Description protected MethodDescription.InDefinedShapeadviceMethodThe advice method.protected Advice.ArgumentHandler.ForAdviceargumentHandlerA handler for accessing values on the local variable array.protected Implementation.ContextimplementationContextThe implementation context to use.protected Advice.MethodSizeHandler.ForAdvicemethodSizeHandlerA handler for computing the method size requirements.protected org.objectweb.asm.MethodVisitormethodVisitorThe method visitor for writing the instrumented method.protected Advice.StackMapFrameHandler.ForAdvicestackMapFrameHandlerA handler for translating and injecting stack map frames.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAdviceMethodWriter(MethodDescription.InDefinedShape adviceMethod, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Assigner assigner, Advice.PostProcessor postProcessor, List<Advice.OffsetMapping.Target> offsetMappings, org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Advice.ArgumentHandler.ForAdvice argumentHandler, Advice.MethodSizeHandler.ForAdvice methodSizeHandler, Advice.StackMapFrameHandler.ForAdvice stackMapFrameHandler, Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler, Advice.Dispatcher.RelocationHandler.Bound relocationHandler, Advice.Delegator delegator)Creates a new advice method writer.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidapply()Applies this dispatcher.protected abstract booleanisExitAdvice()Returnstrueif this writer represents exit advice.voidprepare()Prepares the advice method's exception handlers.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.bytebuddy.asm.Advice.Dispatcher.Bound
initialize
-
-
-
-
Field Detail
-
adviceMethod
protected final MethodDescription.InDefinedShape adviceMethod
The advice method.
-
methodVisitor
protected final org.objectweb.asm.MethodVisitor methodVisitor
The method visitor for writing the instrumented method.
-
implementationContext
protected final Implementation.Context implementationContext
The implementation context to use.
-
argumentHandler
protected final Advice.ArgumentHandler.ForAdvice argumentHandler
A handler for accessing values on the local variable array.
-
methodSizeHandler
protected final Advice.MethodSizeHandler.ForAdvice methodSizeHandler
A handler for computing the method size requirements.
-
stackMapFrameHandler
protected final Advice.StackMapFrameHandler.ForAdvice stackMapFrameHandler
A handler for translating and injecting stack map frames.
-
-
Constructor Detail
-
AdviceMethodWriter
protected AdviceMethodWriter(MethodDescription.InDefinedShape adviceMethod, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Assigner assigner, Advice.PostProcessor postProcessor, List<Advice.OffsetMapping.Target> offsetMappings, org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Advice.ArgumentHandler.ForAdvice argumentHandler, Advice.MethodSizeHandler.ForAdvice methodSizeHandler, Advice.StackMapFrameHandler.ForAdvice stackMapFrameHandler, Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler, Advice.Dispatcher.RelocationHandler.Bound relocationHandler, Advice.Delegator delegator)
Creates a new advice method writer.- Parameters:
adviceMethod- The advice method.instrumentedType- The instrumented type.instrumentedMethod- The instrumented method.assigner- The assigner to use.postProcessor- The post processor to apply.offsetMappings- The offset mappings available to this advice.methodVisitor- The method visitor for writing the instrumented method.implementationContext- The implementation context to use.argumentHandler- A handler for accessing values on the local variable array.methodSizeHandler- A handler for computing the method size requirements.stackMapFrameHandler- A handler for translating and injecting stack map frames.suppressionHandler- A bound suppression handler that is used for suppressing exceptions of this advice method.relocationHandler- A bound relocation handler that is responsible for considering a non-standard control flow.delegator- The delegator to use.
-
-
Method Detail
-
prepare
public void prepare()
Prepares the advice method's exception handlers.- Specified by:
preparein interfaceAdvice.Dispatcher.Bound
-
apply
public void apply()
Applies this dispatcher.- Specified by:
applyin interfaceAdvice.Dispatcher.Bound
-
isExitAdvice
protected abstract boolean isExitAdvice()
Returnstrueif this writer represents exit advice.- Returns:
trueif this writer represents exit advice.
-
-