Package net.bytebuddy.asm
Class MemberSubstitution.Substitution.Chain
- java.lang.Object
-
- net.bytebuddy.asm.MemberSubstitution.Substitution.Chain
-
- All Implemented Interfaces:
MemberSubstitution.Substitution
- Enclosing interface:
- MemberSubstitution.Substitution
@Enhance public static class MemberSubstitution.Substitution.Chain extends java.lang.Object implements MemberSubstitution.Substitution
A substitution chain allows for chaining multiple substitution steps for a byte code element being replaced.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMemberSubstitution.Substitution.Chain.FactoryA factory for creating a substitution chain.protected static interfaceMemberSubstitution.Substitution.Chain.StepRepresents a step of a substitution chain.-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Substitution
MemberSubstitution.Substitution.Chain, MemberSubstitution.Substitution.ForFieldAccess, MemberSubstitution.Substitution.ForMethodInvocation, MemberSubstitution.Substitution.Stubbing
-
-
Field Summary
Fields Modifier and Type Field Description private AssignerassignerThe assigner to use.private java.util.List<MemberSubstitution.Substitution.Chain.Step>stepsThe substitution steps to apply.private Assigner.TypingtypingThe typing of the assignment to use.
-
Constructor Summary
Constructors Modifier Constructor Description protectedChain(Assigner assigner, Assigner.Typing typing, java.util.List<MemberSubstitution.Substitution.Chain.Step> steps)Creates a new substitution chain.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StackManipulationresolve(TypeDescription targetType, ByteCodeElement target, TypeList.Generic parameters, TypeDescription.Generic result, int freeOffset)Resolves this substitution into a stack manipulation.static MemberSubstitution.Substitution.Chain.Factorywith(Assigner assigner, Assigner.Typing typing)Creates a new substitution chain.static MemberSubstitution.Substitution.Chain.FactorywithDefaultAssigner()Creates a new substitution chain that uses a default assigner and static typing.
-
-
-
Field Detail
-
assigner
private final Assigner assigner
The assigner to use.
-
typing
private final Assigner.Typing typing
The typing of the assignment to use.
-
steps
private final java.util.List<MemberSubstitution.Substitution.Chain.Step> steps
The substitution steps to apply.
-
-
Constructor Detail
-
Chain
protected Chain(Assigner assigner, Assigner.Typing typing, java.util.List<MemberSubstitution.Substitution.Chain.Step> steps)
Creates a new substitution chain.- Parameters:
assigner- The assigner to use.typing- The typing of the assignment to use.steps- The substitution steps to apply.
-
-
Method Detail
-
withDefaultAssigner
public static MemberSubstitution.Substitution.Chain.Factory withDefaultAssigner()
Creates a new substitution chain that uses a default assigner and static typing.- Returns:
- A new substitution chain.
-
with
public static MemberSubstitution.Substitution.Chain.Factory with(Assigner assigner, Assigner.Typing typing)
Creates a new substitution chain.- Parameters:
assigner- The assigner to use.typing- The typing of the assignment to use.- Returns:
- A new substitution chain.
-
resolve
public StackManipulation resolve(TypeDescription targetType, ByteCodeElement target, TypeList.Generic parameters, TypeDescription.Generic result, int freeOffset)
Resolves this substitution into a stack manipulation.- Specified by:
resolvein interfaceMemberSubstitution.Substitution- Parameters:
targetType- The target type on which a member is accessed.target- The target 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 orvoidif no result is expected.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.
-
-