@HashCodeAndEqualsPlugin.Enhance public static class MethodCall.ArgumentLoader.ForStackManipulation extends java.lang.Object implements MethodCall.ArgumentLoader, MethodCall.ArgumentLoader.ArgumentProvider, MethodCall.ArgumentLoader.Factory
MethodCall.ArgumentLoader.ArgumentProvider, MethodCall.ArgumentLoader.Factory, MethodCall.ArgumentLoader.ForField, MethodCall.ArgumentLoader.ForInstance, MethodCall.ArgumentLoader.ForInstrumentedType, MethodCall.ArgumentLoader.ForMethodCall, MethodCall.ArgumentLoader.ForMethodParameter, MethodCall.ArgumentLoader.ForMethodParameterArray, MethodCall.ArgumentLoader.ForMethodParameterArrayElement, MethodCall.ArgumentLoader.ForNullConstant, MethodCall.ArgumentLoader.ForStackManipulation, MethodCall.ArgumentLoader.ForThisReference
Modifier and Type | Field and Description |
---|---|
private StackManipulation |
stackManipulation
The stack manipulation to load.
|
private TypeDefinition |
typeDefinition
The type of the resulting value.
|
Constructor and 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.
|
Modifier and Type | Method and Description |
---|---|
MethodCall.ArgumentLoader.ArgumentProvider |
make(Implementation.Target implementationTarget)
Creates an argument provider for the supplied implementation target.
|
static MethodCall.ArgumentLoader.Factory |
of(java.lang.Object value)
Creates an argument loader that loads the supplied value as a constant.
|
InstrumentedType |
prepare(InstrumentedType instrumentedType)
Prepares a given instrumented type.
|
java.util.List<MethodCall.ArgumentLoader> |
resolve(MethodDescription instrumentedMethod,
MethodDescription invokedMethod)
Resolves this provider to an argument loader for each provided argument.
|
StackManipulation |
toStackManipulation(ParameterDescription target,
Assigner assigner,
Assigner.Typing typing)
Loads the argument that is represented by this instance onto the operand stack.
|
private final StackManipulation stackManipulation
private final TypeDefinition typeDefinition
public ForStackManipulation(StackManipulation stackManipulation, java.lang.reflect.Type type)
stackManipulation
- The stack manipulation to load.type
- The type of the resulting value.public ForStackManipulation(StackManipulation stackManipulation, TypeDefinition typeDefinition)
stackManipulation
- The stack manipulation to load.typeDefinition
- The type of the resulting value.public static MethodCall.ArgumentLoader.Factory of(java.lang.Object value)
value
- The value to load as an argument or null
.public InstrumentedType prepare(InstrumentedType instrumentedType)
prepare
in interface InstrumentedType.Prepareable
instrumentedType
- The instrumented type in its current form.public MethodCall.ArgumentLoader.ArgumentProvider make(Implementation.Target implementationTarget)
make
in interface MethodCall.ArgumentLoader.Factory
implementationTarget
- The implementation target to use.public java.util.List<MethodCall.ArgumentLoader> resolve(MethodDescription instrumentedMethod, MethodDescription invokedMethod)
resolve
in interface MethodCall.ArgumentLoader.ArgumentProvider
instrumentedMethod
- The instrumented method.invokedMethod
- The invoked method.public StackManipulation toStackManipulation(ParameterDescription target, Assigner assigner, Assigner.Typing typing)
toStackManipulation
in interface MethodCall.ArgumentLoader
target
- The target parameter.assigner
- The assigner to be used.typing
- Indicates if dynamic type castings should be attempted for incompatible assignments.