Package net.bytebuddy.asm
Class MemberSubstitution.Substitution.ForValue
- java.lang.Object
-
- net.bytebuddy.asm.MemberSubstitution.Substitution.ForValue
-
- All Implemented Interfaces:
MemberSubstitution.Substitution
,MemberSubstitution.Substitution.Factory
- Enclosing interface:
- MemberSubstitution.Substitution
@Enhance public static class MemberSubstitution.Substitution.ForValue extends java.lang.Object implements MemberSubstitution.Substitution, MemberSubstitution.Substitution.Factory
A substitution that loads a fixed value.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Substitution
MemberSubstitution.Substitution.Chain, MemberSubstitution.Substitution.Factory, MemberSubstitution.Substitution.ForFieldAccess, MemberSubstitution.Substitution.ForMethodInvocation, MemberSubstitution.Substitution.ForValue, MemberSubstitution.Substitution.Stubbing
-
-
Field Summary
Fields Modifier and Type Field Description private StackManipulation
stackManipulation
The stack manipulation to load the value that represents the substitution.private TypeDescription.Generic
typeDescription
The type of the represented stack manipulation.
-
Constructor Summary
Constructors Constructor Description ForValue(StackManipulation stackManipulation, TypeDescription.Generic typeDescription)
Creates a new substitution for loading a constant value.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MemberSubstitution.Substitution
make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypePool typePool)
Creates a substitution for an instrumented method.StackManipulation
resolve(TypeDescription receiver, ByteCodeElement.Member original, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, int freeOffset)
Resolves this substitution into a stack manipulation.
-
-
-
Field Detail
-
stackManipulation
private final StackManipulation stackManipulation
The stack manipulation to load the value that represents the substitution.
-
typeDescription
private final TypeDescription.Generic typeDescription
The type of the represented stack manipulation.
-
-
Constructor Detail
-
ForValue
public ForValue(StackManipulation stackManipulation, TypeDescription.Generic typeDescription)
Creates a new substitution for loading a constant value.- Parameters:
stackManipulation
- The stack manipulation to load the value that represents the substitution.typeDescription
- The type of the represented stack manipulation.
-
-
Method Detail
-
make
public MemberSubstitution.Substitution make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypePool typePool)
Creates a substitution for an instrumented method.- Specified by:
make
in interfaceMemberSubstitution.Substitution.Factory
- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.typePool
- The type pool being used.- Returns:
- The substitution to apply within the instrumented method.
-
resolve
public StackManipulation resolve(TypeDescription receiver, ByteCodeElement.Member original, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, int freeOffset)
Resolves this substitution into a stack manipulation.- Specified by:
resolve
in interfaceMemberSubstitution.Substitution
- Parameters:
receiver
- The target type on which a member is accessed.original
- The field, method or constructor that is substituted.parameters
- All parameters that serve as input to this access.result
- The result that is expected from the interaction orvoid
if no result is expected.methodHandle
- A method handle describing the substituted expression.stackManipulation
- The original byte code expression that is being executed.freeOffset
- The first free offset of the local variable array that can be used for storing values.- Returns:
- A stack manipulation that represents the access.
-
-