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 java.lang.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 Advice.ArgumentHandler.ForAdviceargumentHandlerA handler for accessing values on the local variable array.private AssignerassignerThe assigner to use.private Advice.DelegatordelegatorThe delegator to use.private StackManipulationexceptionHandlerThe exception handler that is resolved for the instrumented method.protected Implementation.ContextimplementationContextThe implementation context to use.private MethodDescriptioninstrumentedMethodThe instrumented method.private TypeDescriptioninstrumentedTypeThe instrumented type.protected Advice.MethodSizeHandler.ForAdvicemethodSizeHandlerA handler for computing the method size requirements.protected org.objectweb.asm.MethodVisitormethodVisitorThe method visitor for writing the instrumented method.private java.util.List<Advice.OffsetMapping.Target>offsetMappingsThe offset mappings available to this advice.private Advice.PostProcessorpostProcessorThe post processor to apply.private Advice.Dispatcher.RelocationHandler.BoundrelocationHandlerA bound relocation handler that is responsible for considering a non-standard control flow.protected Advice.StackMapFrameHandler.ForAdvicestackMapFrameHandlerA handler for translating and injecting stack map frames.private Advice.Dispatcher.SuppressionHandler.BoundsuppressionHandlerA bound suppression handler that is used for suppressing exceptions of this advice method.protected MethodDescription.TypeTokentypeTokenThe advice method.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAdviceMethodWriter(MethodDescription.TypeToken typeToken, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Assigner assigner, Advice.PostProcessor postProcessor, java.util.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, StackManipulation exceptionHandler, 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
-
typeToken
protected final MethodDescription.TypeToken typeToken
The advice method.
-
instrumentedType
private final TypeDescription instrumentedType
The instrumented type.
-
instrumentedMethod
private final MethodDescription instrumentedMethod
The instrumented method.
-
assigner
private final Assigner assigner
The assigner to use.
-
offsetMappings
private final java.util.List<Advice.OffsetMapping.Target> offsetMappings
The offset mappings available to this advice.
-
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.
-
suppressionHandler
private final Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler
A bound suppression handler that is used for suppressing exceptions of this advice method.
-
relocationHandler
private final Advice.Dispatcher.RelocationHandler.Bound relocationHandler
A bound relocation handler that is responsible for considering a non-standard control flow.
-
exceptionHandler
private final StackManipulation exceptionHandler
The exception handler that is resolved for the instrumented method.
-
postProcessor
private final Advice.PostProcessor postProcessor
The post processor to apply.
-
delegator
private final Advice.Delegator delegator
The delegator to use.
-
-
Constructor Detail
-
AdviceMethodWriter
protected AdviceMethodWriter(MethodDescription.TypeToken typeToken, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Assigner assigner, Advice.PostProcessor postProcessor, java.util.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, StackManipulation exceptionHandler, Advice.Delegator delegator)
Creates a new advice method writer.- Parameters:
typeToken- The advice method's type token.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.exceptionHandler- The exception handler that is resolved for the instrumented method.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.
-
-