Package net.bytebuddy.asm
Class MemberSubstitution.Replacement.ForElementMatchers
- java.lang.Object
-
- net.bytebuddy.asm.MemberSubstitution.Replacement.ForElementMatchers
-
- All Implemented Interfaces:
MemberSubstitution.Replacement
- Enclosing interface:
- MemberSubstitution.Replacement
@Enhance public static class MemberSubstitution.Replacement.ForElementMatchers extends Object implements MemberSubstitution.Replacement
A replacement that substitutes a member based on a row of element matchers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
MemberSubstitution.Replacement.ForElementMatchers.Factory
A factory for creating a replacement that chooses members based on a row of element matchers.-
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Replacement
MemberSubstitution.Replacement.Binding, MemberSubstitution.Replacement.ForElementMatchers, MemberSubstitution.Replacement.ForFirstBinding, MemberSubstitution.Replacement.InvocationType, MemberSubstitution.Replacement.NoOp
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForElementMatchers(ElementMatcher<? super FieldDescription.InDefinedShape> fieldMatcher, ElementMatcher<? super MethodDescription> methodMatcher, boolean matchFieldRead, boolean matchFieldWrite, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution substitution)
Creates a new replacement that triggers a substitution based on a row of matchers.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MemberSubstitution.Replacement.Binding
bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, FieldDescription.InDefinedShape fieldDescription, boolean writeAccess)
Binds this replacement for a field that was discovered.MemberSubstitution.Replacement.Binding
bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypeDescription typeDescription, MethodDescription methodDescription, MemberSubstitution.Replacement.InvocationType invocationType)
Binds this replacement for a field that was discovered.
-
-
-
Constructor Detail
-
ForElementMatchers
protected ForElementMatchers(ElementMatcher<? super FieldDescription.InDefinedShape> fieldMatcher, ElementMatcher<? super MethodDescription> methodMatcher, boolean matchFieldRead, boolean matchFieldWrite, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution substitution)
Creates a new replacement that triggers a substitution based on a row of matchers.- Parameters:
fieldMatcher
- The field matcher to consider when discovering fields.methodMatcher
- The method matcher to consider when discovering methods.matchFieldRead
-true
if field reading access should be matched.matchFieldWrite
-true
if field writing access should be matched.includeVirtualCalls
-true
if virtual method calls should be matched.includeSuperCalls
-true
if super method calls should be matched.substitution
- The substitution to trigger if a member is matched.
-
-
Method Detail
-
bind
public MemberSubstitution.Replacement.Binding bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, FieldDescription.InDefinedShape fieldDescription, boolean writeAccess)
Binds this replacement for a field that was discovered.- Specified by:
bind
in interfaceMemberSubstitution.Replacement
- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.fieldDescription
- The field that was discovered.writeAccess
-true
if this field was written to.- Returns:
- A binding for the discovered field access.
-
bind
public MemberSubstitution.Replacement.Binding bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypeDescription typeDescription, MethodDescription methodDescription, MemberSubstitution.Replacement.InvocationType invocationType)
Binds this replacement for a field that was discovered.- Specified by:
bind
in interfaceMemberSubstitution.Replacement
- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.typeDescription
- The type on which the method was invoked.methodDescription
- The method that was discovered.invocationType
- The invocation type for this method.- Returns:
- A binding for the discovered method invocation.
-
-