Package net.bytebuddy.asm
Class Advice.Dispatcher.Inlining.Resolved.ForMethodExit
- java.lang.Object
-
- net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved
-
- net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodExit
-
- All Implemented Interfaces:
Advice.Dispatcher
,Advice.Dispatcher.Resolved
,Advice.Dispatcher.Resolved.ForMethodExit
- Direct Known Subclasses:
Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithExceptionHandler
,Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithoutExceptionHandler
- Enclosing class:
- Advice.Dispatcher.Inlining.Resolved
protected abstract static class Advice.Dispatcher.Inlining.Resolved.ForMethodExit extends Advice.Dispatcher.Inlining.Resolved implements Advice.Dispatcher.Resolved.ForMethodExit
A resolved dispatcher for implementing method exit advice.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
Advice.Dispatcher.Inlining.Resolved.ForMethodExit.AdviceMethodInliner
An advice method inliner for a method exit.protected static class
Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithExceptionHandler
Implementation of exit advice that handles exceptions.protected static class
Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithoutExceptionHandler
Implementation of exit advice that ignores exceptions.-
Nested classes/interfaces inherited from class net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved
Advice.Dispatcher.Inlining.Resolved.ForMethodEnter, Advice.Dispatcher.Inlining.Resolved.ForMethodExit
-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.Advice.Dispatcher
Advice.Dispatcher.Bound, Advice.Dispatcher.Delegating, Advice.Dispatcher.Inactive, Advice.Dispatcher.Inlining, Advice.Dispatcher.Resolved, Advice.Dispatcher.SuppressionHandler, Advice.Dispatcher.Unresolved
-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.Advice.Dispatcher.Resolved
Advice.Dispatcher.Resolved.ForMethodEnter, Advice.Dispatcher.Resolved.ForMethodExit
-
-
Field Summary
-
Fields inherited from class net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved
adviceMethod, classReader, offsetMappings, suppressionHandler
-
Fields inherited from interface net.bytebuddy.asm.Advice.Dispatcher
IGNORE_ANNOTATION, IGNORE_METHOD
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForMethodExit(MethodDescription.InDefinedShape adviceMethod, java.util.List<? extends Advice.OffsetMapping.Factory<?>> userFactories, org.objectweb.asm.ClassReader classReader, TypeDefinition enterType)
Creates a new resolved dispatcher for implementing method exit advice.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected org.objectweb.asm.MethodVisitor
apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, Advice.MethodSizeHandler.ForInstrumentedMethod methodSizeHandler, Advice.StackMapFrameHandler.ForInstrumentedMethod stackMapFrameHandler, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler)
Applies a resolution for a given instrumented method.Advice.Dispatcher.Bound.ForMethodExit
bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, Advice.MethodSizeHandler.ForInstrumentedMethod methodSizeHandler, Advice.StackMapFrameHandler.ForInstrumentedMethod stackMapFrameHandler, StackManipulation exceptionHandler)
Binds this dispatcher for resolution to a specific method.boolean
equals(java.lang.Object object)
protected abstract StackSize
getPadding()
Returns the additional padding this exit advice implies.int
hashCode()
protected static Advice.Dispatcher.Resolved.ForMethodExit
of(MethodDescription.InDefinedShape adviceMethod, java.util.List<? extends Advice.OffsetMapping.Factory<?>> userFactories, org.objectweb.asm.ClassReader classReader, TypeDefinition enterType)
Resolves exit advice that handles exceptions depending on the specification of the exit advice.-
Methods inherited from class net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved
isAlive
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.bytebuddy.asm.Advice.Dispatcher
isAlive
-
Methods inherited from interface net.bytebuddy.asm.Advice.Dispatcher.Resolved.ForMethodExit
getThrowable
-
-
-
-
Constructor Detail
-
ForMethodExit
protected ForMethodExit(MethodDescription.InDefinedShape adviceMethod, java.util.List<? extends Advice.OffsetMapping.Factory<?>> userFactories, org.objectweb.asm.ClassReader classReader, TypeDefinition enterType)
Creates a new resolved dispatcher for implementing method exit advice.- Parameters:
adviceMethod
- The represented advice method.userFactories
- A list of user-defined factories for offset mappings.classReader
- The class reader for parsing the advice method's class file.enterType
- The type of the value supplied by the enter advice method or a description ofvoid
if no such value exists.
-
-
Method Detail
-
of
protected static Advice.Dispatcher.Resolved.ForMethodExit of(MethodDescription.InDefinedShape adviceMethod, java.util.List<? extends Advice.OffsetMapping.Factory<?>> userFactories, org.objectweb.asm.ClassReader classReader, TypeDefinition enterType)
Resolves exit advice that handles exceptions depending on the specification of the exit advice.- Parameters:
adviceMethod
- The advice method.userFactories
- A list of user-defined factories for offset mappings.classReader
- The class reader for parsing the advice method's class file.enterType
- The type of the value supplied by the enter advice method or a description ofvoid
if no such value exists.- Returns:
- An appropriate exit handler.
-
apply
protected org.objectweb.asm.MethodVisitor apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, Advice.MethodSizeHandler.ForInstrumentedMethod methodSizeHandler, Advice.StackMapFrameHandler.ForInstrumentedMethod stackMapFrameHandler, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Advice.Dispatcher.SuppressionHandler.Bound suppressionHandler)
Description copied from class:Advice.Dispatcher.Inlining.Resolved
Applies a resolution for a given instrumented method.- Specified by:
apply
in classAdvice.Dispatcher.Inlining.Resolved
- Parameters:
methodVisitor
- A method visitor for writing byte code to the instrumented method.implementationContext
- The implementation context to use.assigner
- The assigner to use.methodSizeHandler
- A handler for computing the method size requirements.stackMapFrameHandler
- A handler for translating and injecting stack map frames.instrumentedType
- A description of the instrumented type.instrumentedMethod
- A description of the instrumented method.suppressionHandler
- The bound suppression handler that is used for suppressing exceptions of this advice method.- Returns:
- A method visitor for visiting the advice method's byte code.
-
bind
public Advice.Dispatcher.Bound.ForMethodExit bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, Advice.MethodSizeHandler.ForInstrumentedMethod methodSizeHandler, Advice.StackMapFrameHandler.ForInstrumentedMethod stackMapFrameHandler, StackManipulation exceptionHandler)
Description copied from interface:Advice.Dispatcher.Resolved
Binds this dispatcher for resolution to a specific method.- Specified by:
bind
in interfaceAdvice.Dispatcher.Resolved
- Specified by:
bind
in interfaceAdvice.Dispatcher.Resolved.ForMethodExit
- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.methodVisitor
- The method visitor for writing the instrumented method.implementationContext
- The implementation context to use.assigner
- The assigner to use.methodSizeHandler
- A handler for computing the method size requirements.stackMapFrameHandler
- A handler for translating and injecting stack map frames.exceptionHandler
- The stack manipulation to apply within a suppression handler.- Returns:
- A dispatcher that is bound to the instrumented method.
-
getPadding
protected abstract StackSize getPadding()
Returns the additional padding this exit advice implies.- Returns:
- The additional padding this exit advice implies.
-
equals
public boolean equals(java.lang.Object object)
- Overrides:
equals
in classAdvice.Dispatcher.Inlining.Resolved
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAdvice.Dispatcher.Inlining.Resolved
-
-