Package net.bytebuddy.asm
Class MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution
- java.lang.Object
-
- net.bytebuddy.asm.MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution
-
- All Implemented Interfaces:
MemberSubstitution.Substitution.Chain.Step
- Enclosing interface:
- MemberSubstitution.Substitution.Chain.Step
@Enhance public static class MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution extends java.lang.Object implements MemberSubstitution.Substitution.Chain.Step
A step that substitutes an argument of a given index with a compatible type.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution.Factory
A factory to create an argument substitution step.-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Substitution.Chain.Step
MemberSubstitution.Substitution.Chain.Step.ForArgumentLoading, MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution, MemberSubstitution.Substitution.Chain.Step.ForAssignment, MemberSubstitution.Substitution.Chain.Step.ForDelegation, MemberSubstitution.Substitution.Chain.Step.ForField, MemberSubstitution.Substitution.Chain.Step.ForInvocation, MemberSubstitution.Substitution.Chain.Step.OfOriginalExpression, MemberSubstitution.Substitution.Chain.Step.Resolution, MemberSubstitution.Substitution.Chain.Step.Simple
-
-
Field Summary
Fields Modifier and Type Field Description private Assigner
assigner
The assigner to use for assigning the argument.private int
index
The index of the argument to substitute.private StackManipulation
substitution
The stack manipulation that loads the substituted argument.private TypeDescription.Generic
typeDescription
The type of the substituted argument.private Assigner.Typing
typing
The typing to use for the argument assignment.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForArgumentSubstitution(StackManipulation substitution, TypeDescription.Generic typeDescription, int index, Assigner assigner, Assigner.Typing typing)
Creates an argument substitution step.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static MemberSubstitution.Substitution.Chain.Step.Factory
of(java.lang.Object value, int index)
Resolves a step substitution factory for a compile-time constant to replace an argument value at a given index.MemberSubstitution.Substitution.Chain.Step.Resolution
resolve(MemberSubstitution.Target target, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, TypeDescription.Generic current, java.util.Map<java.lang.Integer,java.lang.Integer> offsets, int freeOffset)
Resolves this step of a substitution chain.
-
-
-
Field Detail
-
substitution
private final StackManipulation substitution
The stack manipulation that loads the substituted argument.
-
typeDescription
private final TypeDescription.Generic typeDescription
The type of the substituted argument.
-
index
private final int index
The index of the argument to substitute.
-
assigner
private final Assigner assigner
The assigner to use for assigning the argument.
-
typing
private final Assigner.Typing typing
The typing to use for the argument assignment.
-
-
Constructor Detail
-
ForArgumentSubstitution
protected ForArgumentSubstitution(StackManipulation substitution, TypeDescription.Generic typeDescription, int index, Assigner assigner, Assigner.Typing typing)
Creates an argument substitution step.- Parameters:
substitution
- The stack manipulation that loads the substituted argument.typeDescription
- The type of the substituted argument.index
- The index of the argument to substitute.assigner
- The assigner to use for assigning the argument.typing
- The typing to use for the argument assignment.
-
-
Method Detail
-
of
public static MemberSubstitution.Substitution.Chain.Step.Factory of(java.lang.Object value, int index)
Resolves a step substitution factory for a compile-time constant to replace an argument value at a given index.- Parameters:
value
- The compile-time constant to replace.index
- The index of the substituted argument.- Returns:
- An appropriate step factory.
-
resolve
public MemberSubstitution.Substitution.Chain.Step.Resolution resolve(MemberSubstitution.Target target, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, TypeDescription.Generic current, java.util.Map<java.lang.Integer,java.lang.Integer> offsets, int freeOffset)
Resolves this step of a substitution chain.- Specified by:
resolve
in interfaceMemberSubstitution.Substitution.Chain.Step
- Parameters:
target
- The target member of invokedynamic invocation.parameters
- The parameters of the substituted element.result
- The resulting type of the substituted element.methodHandle
- A method handle of the stackManipulation invocation that is being substituted.stackManipulation
- The byte code instruction that is being substituted.current
- The current type of the applied substitution that is the top element on the operand stack.offsets
- The arguments of the substituted byte code element mapped to their local variable offsets.freeOffset
- The first free offset in the local variable array.- Returns:
- A resolved substitution step for the supplied inputs.
-
-