Package net.bytebuddy.asm
Class Advice.MethodSizeHandler.Default
- java.lang.Object
-
- net.bytebuddy.asm.Advice.MethodSizeHandler.Default
-
- All Implemented Interfaces:
Advice.MethodSizeHandler
,Advice.MethodSizeHandler.ForInstrumentedMethod
- Enclosing interface:
- Advice.MethodSizeHandler
public static class Advice.MethodSizeHandler.Default extends java.lang.Object implements Advice.MethodSizeHandler.ForInstrumentedMethod
A default implementation for a method size handler.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
Advice.MethodSizeHandler.Default.ForAdvice
A method size handler for an advice method.-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.Advice.MethodSizeHandler
Advice.MethodSizeHandler.Default, Advice.MethodSizeHandler.ForInstrumentedMethod, Advice.MethodSizeHandler.NoOp
-
-
Field Summary
-
Fields inherited from interface net.bytebuddy.asm.Advice.MethodSizeHandler
UNDEFINED_SIZE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Default(MethodDescription instrumentedMethod, TypeList enterTypes, TypeList exitTypes)
Creates a new default meta data handler that recomputes the space requirements of an instrumented method.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Advice.MethodSizeHandler.ForAdvice
bindEntry(MethodDescription.InDefinedShape adviceMethod)
Binds a method size handler for the entry advice.Advice.MethodSizeHandler.ForAdvice
bindExit(MethodDescription.InDefinedShape adviceMethod, boolean skipThrowable)
Binds the method size handler for the exit advice.int
compoundLocalVariableLength(int localVariableLength)
Computes a compound local variable array length for the advice and the translated instrumented method.int
compoundStackSize(int stackSize)
Computes a compound stack size for the advice and the translated instrumented method.protected static Advice.MethodSizeHandler.ForInstrumentedMethod
of(MethodDescription instrumentedMethod, java.util.List<? extends TypeDescription> enterTypes, java.util.List<? extends TypeDescription> exitTypes, int writerFlags)
Creates a method size handler applicable for the given instrumented method.void
requireLocalVariableLength(int localVariableLength)
Requires a minimum length of the local variable array.
-
-
-
Constructor Detail
-
Default
protected Default(MethodDescription instrumentedMethod, TypeList enterTypes, TypeList exitTypes)
Creates a new default meta data handler that recomputes the space requirements of an instrumented method.- Parameters:
instrumentedMethod
- The instrumented method.enterTypes
- A list of virtual method arguments that are available before the instrumented method is executed.exitTypes
- A list of virtual method arguments that are available after the instrumented method has completed.
-
-
Method Detail
-
of
protected static Advice.MethodSizeHandler.ForInstrumentedMethod of(MethodDescription instrumentedMethod, java.util.List<? extends TypeDescription> enterTypes, java.util.List<? extends TypeDescription> exitTypes, int writerFlags)
Creates a method size handler applicable for the given instrumented method.- Parameters:
instrumentedMethod
- The instrumented method.enterTypes
- A list of virtual method arguments that are available before the instrumented method is executed.exitTypes
- A list of virtual method arguments that are available after the instrumented method has completed.writerFlags
- The flags supplied to the ASM class writer.- Returns:
- An appropriate method size handler.
-
bindEntry
public Advice.MethodSizeHandler.ForAdvice bindEntry(MethodDescription.InDefinedShape adviceMethod)
Description copied from interface:Advice.MethodSizeHandler.ForInstrumentedMethod
Binds a method size handler for the entry advice.- Specified by:
bindEntry
in interfaceAdvice.MethodSizeHandler.ForInstrumentedMethod
- Parameters:
adviceMethod
- The method representing the entry advice.- Returns:
- A method size handler for the entry advice.
-
bindExit
public Advice.MethodSizeHandler.ForAdvice bindExit(MethodDescription.InDefinedShape adviceMethod, boolean skipThrowable)
Description copied from interface:Advice.MethodSizeHandler.ForInstrumentedMethod
Binds the method size handler for the exit advice.- Specified by:
bindExit
in interfaceAdvice.MethodSizeHandler.ForInstrumentedMethod
- Parameters:
adviceMethod
- The method representing the exit advice.skipThrowable
-true
if the exit advice is not invoked on an exception.- Returns:
- A method size handler for the exit advice.
-
compoundStackSize
public int compoundStackSize(int stackSize)
Description copied from interface:Advice.MethodSizeHandler.ForInstrumentedMethod
Computes a compound stack size for the advice and the translated instrumented method.- Specified by:
compoundStackSize
in interfaceAdvice.MethodSizeHandler.ForInstrumentedMethod
- Parameters:
stackSize
- The required stack size of the instrumented method before translation.- Returns:
- The stack size required by the instrumented method and its advice methods.
-
compoundLocalVariableLength
public int compoundLocalVariableLength(int localVariableLength)
Description copied from interface:Advice.MethodSizeHandler.ForInstrumentedMethod
Computes a compound local variable array length for the advice and the translated instrumented method.- Specified by:
compoundLocalVariableLength
in interfaceAdvice.MethodSizeHandler.ForInstrumentedMethod
- Parameters:
localVariableLength
- The required local variable array length of the instrumented method before translation.- Returns:
- The local variable length required by the instrumented method and its advice methods.
-
requireLocalVariableLength
public void requireLocalVariableLength(int localVariableLength)
Description copied from interface:Advice.MethodSizeHandler
Requires a minimum length of the local variable array.- Specified by:
requireLocalVariableLength
in interfaceAdvice.MethodSizeHandler
- Parameters:
localVariableLength
- The minimal required length of the local variable array.
-
-