Package net.bytebuddy.implementation
Class MethodCall.ArgumentLoader.ForStackManipulation
- java.lang.Object
-
- net.bytebuddy.implementation.MethodCall.ArgumentLoader.ForStackManipulation
-
- All Implemented Interfaces:
MethodCall.ArgumentLoader,MethodCall.ArgumentLoader.Factory
- Enclosing interface:
- MethodCall.ArgumentLoader
public static class MethodCall.ArgumentLoader.ForStackManipulation extends java.lang.Object implements MethodCall.ArgumentLoader, MethodCall.ArgumentLoader.Factory
Loads a stack manipulation resulting in a specific type as an argument.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.MethodCall.ArgumentLoader
MethodCall.ArgumentLoader.Factory, MethodCall.ArgumentLoader.ForField, MethodCall.ArgumentLoader.ForInstance, MethodCall.ArgumentLoader.ForInstrumentedType, MethodCall.ArgumentLoader.ForMethodParameter, MethodCall.ArgumentLoader.ForMethodParameterArray, MethodCall.ArgumentLoader.ForMethodParameterArrayElement, MethodCall.ArgumentLoader.ForNullConstant, MethodCall.ArgumentLoader.ForStackManipulation, MethodCall.ArgumentLoader.ForThisReference
-
-
Constructor Summary
Constructors Constructor Description ForStackManipulation(StackManipulation stackManipulation, java.lang.reflect.Type type)Creates an argument loader that loads a stack manipulation as an argument.ForStackManipulation(StackManipulation stackManipulation, TypeDefinition typeDefinition)Creates an argument loader that loads a stack manipulation as an argument.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<MethodCall.ArgumentLoader>make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, MethodDescription invokedMethod)Creates any number of argument loaders for an instrumentation.static MethodCall.ArgumentLoader.Factoryof(java.lang.Object value)Creates an argument loader that loads the supplied value as a constant.InstrumentedTypeprepare(InstrumentedType instrumentedType)Prepares the instrumented type in order to allow the loading of the represented argument.StackManipulationresolve(ParameterDescription target, Assigner assigner, Assigner.Typing typing)Loads the argument that is represented by this instance onto the operand stack.
-
-
-
Constructor Detail
-
ForStackManipulation
public ForStackManipulation(StackManipulation stackManipulation, java.lang.reflect.Type type)
Creates an argument loader that loads a stack manipulation as an argument.- Parameters:
stackManipulation- The stack manipulation to load.type- The type of the resulting value.
-
ForStackManipulation
public ForStackManipulation(StackManipulation stackManipulation, TypeDefinition typeDefinition)
Creates an argument loader that loads a stack manipulation as an argument.- Parameters:
stackManipulation- The stack manipulation to load.typeDefinition- The type of the resulting value.
-
-
Method Detail
-
of
public static MethodCall.ArgumentLoader.Factory of(java.lang.Object value)
Creates an argument loader that loads the supplied value as a constant. If the value cannot be represented in the constant pool, a field is created to store the value.- Parameters:
value- The value to load as an argument ornull.- Returns:
- An appropriate argument loader.
-
prepare
public InstrumentedType prepare(InstrumentedType instrumentedType)
Description copied from interface:MethodCall.ArgumentLoader.FactoryPrepares the instrumented type in order to allow the loading of the represented argument.- Specified by:
preparein interfaceMethodCall.ArgumentLoader.Factory- Parameters:
instrumentedType- The instrumented type.- Returns:
- The prepared instrumented type.
-
make
public java.util.List<MethodCall.ArgumentLoader> make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, MethodDescription invokedMethod)
Description copied from interface:MethodCall.ArgumentLoader.FactoryCreates any number of argument loaders for an instrumentation.- Specified by:
makein interfaceMethodCall.ArgumentLoader.Factory- Parameters:
instrumentedType- The instrumented type.instrumentedMethod- The instrumented method.invokedMethod- The invoked method.- Returns:
- Any number of argument loaders to supply for the method call.
-
resolve
public StackManipulation resolve(ParameterDescription target, Assigner assigner, Assigner.Typing typing)
Description copied from interface:MethodCall.ArgumentLoaderLoads the argument that is represented by this instance onto the operand stack.- Specified by:
resolvein interfaceMethodCall.ArgumentLoader- Parameters:
target- The target parameter.assigner- The assigner to be used.typing- Indicates if dynamic type castings should be attempted for incompatible assignments.- Returns:
- The stack manipulation that loads the represented argument onto the stack.
-
-