Package net.bytebuddy.asm
Interface MemberSubstitution.Substitution.Chain.Step
-
- All Known Implementing Classes:
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.ForField.Read
,MemberSubstitution.Substitution.Chain.Step.ForField.Write
,MemberSubstitution.Substitution.Chain.Step.ForInvocation
,MemberSubstitution.Substitution.Chain.Step.OfOriginalExpression
,MemberSubstitution.Substitution.Chain.Step.Simple
- Enclosing class:
- MemberSubstitution.Substitution.Chain
public static interface MemberSubstitution.Substitution.Chain.Step
Represents a step of a substitution chain.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
MemberSubstitution.Substitution.Chain.Step.Factory
Resolves a substitution for an instrumented method.static class
MemberSubstitution.Substitution.Chain.Step.ForArgumentLoading
A step that loads an argument to a method as the current chain value.static class
MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution
A step that substitutes an argument of a given index with a compatible type.static class
MemberSubstitution.Substitution.Chain.Step.ForAssignment
A step within a substitution chain that converts the current type to the expected return type.static class
MemberSubstitution.Substitution.Chain.Step.ForDelegation
A step that invokes a delegation method based on annotations on the parameters of the targeted method.static class
MemberSubstitution.Substitution.Chain.Step.ForField
Creates a step for a field access.static class
MemberSubstitution.Substitution.Chain.Step.ForInvocation
A step for invoking a method or constructor.static class
MemberSubstitution.Substitution.Chain.Step.OfOriginalExpression
A step that executes the original method invocation or field access.static interface
MemberSubstitution.Substitution.Chain.Step.Resolution
A resolved substitution step.static class
MemberSubstitution.Substitution.Chain.Step.Simple
A simple substitution step within a substitution chain.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description 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.
-
-
-
Method Detail
-
resolve
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.- 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.
-
-