Package net.bytebuddy.asm
Class MemberSubstitution.Substitution.Chain.Step.ForAssignment
java.lang.Object
net.bytebuddy.asm.MemberSubstitution.Substitution.Chain.Step.ForAssignment
- All Implemented Interfaces:
MemberSubstitution.Substitution.Chain.Step
- Enclosing interface:
MemberSubstitution.Substitution.Chain.Step
@Enhance
public static class MemberSubstitution.Substitution.Chain.Step.ForAssignment
extends Object
implements MemberSubstitution.Substitution.Chain.Step
A step within a substitution chain that converts the current type to the expected return type.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
A factory for creating a step for a dynamic type assignment.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
FieldsModifier and TypeFieldDescriptionprivate final Assigner
The assigner to use.private final TypeDescription.Generic
The result type ornull
if the type of the substitution result should be targeted. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ForAssignment
(TypeDescription.Generic result, Assigner assigner) Creates a step for a type assignment. -
Method Summary
Modifier and TypeMethodDescriptionCreates a step factory that casts the current stack top value to the specified type.castTo
(TypeDescription.Generic typeDescription) Creates a step factory that casts the current stack top value to the specified type.Creates a step factory that casts the current stack top value to the expected return value.resolve
(TypeDescription receiver, ByteCodeElement.Member original, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, TypeDescription.Generic current, Map<Integer, Integer> offsets, int freeOffset) Resolves this step of a substitution chain.
-
Field Details
-
result
The result type ornull
if the type of the substitution result should be targeted. -
assigner
The assigner to use.
-
-
Constructor Details
-
ForAssignment
Creates a step for a type assignment.- Parameters:
result
- The result type ornull
if the type of the substitution result should be targeted.assigner
- The assigner to use.
-
-
Method Details
-
castTo
Creates a step factory that casts the current stack top value to the specified type.- Parameters:
type
- The type that should be cast to.- Returns:
- An appropriate step factory.
-
castTo
public static MemberSubstitution.Substitution.Chain.Step.Factory castTo(TypeDescription.Generic typeDescription) Creates a step factory that casts the current stack top value to the specified type.- Parameters:
typeDescription
- The description of the type that should be cast to.- Returns:
- An appropriate step factory.
-
castToSubstitutionResult
Creates a step factory that casts the current stack top value to the expected return value.- Returns:
- An appropriate step factory.
-
resolve
public MemberSubstitution.Substitution.Chain.Step.Resolution resolve(TypeDescription receiver, ByteCodeElement.Member original, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, TypeDescription.Generic current, Map<Integer, Integer> offsets, int freeOffset) Resolves this step of a substitution chain.- Specified by:
resolve
in interfaceMemberSubstitution.Substitution.Chain.Step
- Parameters:
receiver
- The target result type of the substitution.original
- The byte code element that is currently substituted.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.
-