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 java.lang.Object implements MemberSubstitution.Substitution.Chain.Step
A step within a substitution chain that converts the current type to another type by casting.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
MemberSubstitution.Substitution.Chain.Step.ForAssignment.Factory
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
Fields Modifier and Type Field Description private Assigner
assigner
The assigner to use.private TypeDescription.Generic
result
The result type ornull
if the type of the substitution result should be targeted.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForAssignment(TypeDescription.Generic result, Assigner assigner)
Creates a step for a type assignment.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static MemberSubstitution.Substitution.Chain.Step.Factory
castTo(java.lang.reflect.Type type)
Creates a step factory that casts the current stack top value to the specified type.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.static MemberSubstitution.Substitution.Chain.Step.Factory
castToSubstitutionResult()
Creates a step factory that casts the current stack top value to the expected return value.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
-
result
@MaybeNull @ValueHandling(REVERSE_NULLABILITY) private final TypeDescription.Generic result
The result type ornull
if the type of the substitution result should be targeted.
-
assigner
private final Assigner assigner
The assigner to use.
-
-
Constructor Detail
-
ForAssignment
protected ForAssignment(@MaybeNull TypeDescription.Generic result, Assigner assigner)
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 Detail
-
castTo
public static MemberSubstitution.Substitution.Chain.Step.Factory castTo(java.lang.reflect.Type type)
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
public static MemberSubstitution.Substitution.Chain.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(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.
-
-