Package net.bytebuddy.asm
Class MemberSubstitution.Replacement.ForElementMatchers.Factory
java.lang.Object
net.bytebuddy.asm.MemberSubstitution.Replacement.ForElementMatchers.Factory
- All Implemented Interfaces:
MemberSubstitution.Replacement.Factory
- Enclosing class:
MemberSubstitution.Replacement.ForElementMatchers
@Enhance
protected static class MemberSubstitution.Replacement.ForElementMatchers.Factory
extends Object
implements MemberSubstitution.Replacement.Factory
A factory for creating a replacement that chooses members based on a row of element matchers.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Replacement.Factory
MemberSubstitution.Replacement.Factory.Compound
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ElementMatcher
<? super FieldDescription.InDefinedShape> The field matcher to consider when discovering fields.private final boolean
true
if super method calls should be matched.private final boolean
true
if virtual method calls should be matched.private final boolean
true
if field reading access should be matched.private final boolean
true
if field writing access should be matched.private final ElementMatcher
<? super MethodDescription> The method matcher to consider when discovering methods.private final MemberSubstitution.Substitution.Factory
The substitution factory to create a substitution from. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Factory
(ElementMatcher<? super FieldDescription.InDefinedShape> fieldMatcher, ElementMatcher<? super MethodDescription> methodMatcher, boolean matchFieldRead, boolean matchFieldWrite, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution.Factory substitutionFactory) Creates a new replacement that triggers a substitution based on a row of matchers. -
Method Summary
Modifier and TypeMethodDescriptionmake
(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypePool typePool) Creates a replacement for an instrumented method.protected static MemberSubstitution.Replacement.Factory
of
(ElementMatcher<? super ByteCodeElement.Member> matcher, MemberSubstitution.Substitution.Factory factory) Creates a factory for applying a substitution on all matched byte code elements for all access types.protected static MemberSubstitution.Replacement.Factory
ofField
(ElementMatcher<? super FieldDescription.InDefinedShape> matcher, boolean matchFieldRead, boolean matchFieldWrite, MemberSubstitution.Substitution.Factory factory) Creates a factory that only matches field access for given access types.protected static MemberSubstitution.Replacement.Factory
ofMethod
(ElementMatcher<? super MethodDescription> matcher, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution.Factory factory) Creates a factory that only matches method and constructor invocations for given invocation types.
-
Field Details
-
fieldMatcher
The field matcher to consider when discovering fields. -
methodMatcher
The method matcher to consider when discovering methods. -
matchFieldRead
private final boolean matchFieldReadtrue
if field reading access should be matched. -
matchFieldWrite
private final boolean matchFieldWritetrue
if field writing access should be matched. -
includeVirtualCalls
private final boolean includeVirtualCallstrue
if virtual method calls should be matched. -
includeSuperCalls
private final boolean includeSuperCallstrue
if super method calls should be matched. -
substitutionFactory
The substitution factory to create a substitution from.
-
-
Constructor Details
-
Factory
protected Factory(ElementMatcher<? super FieldDescription.InDefinedShape> fieldMatcher, ElementMatcher<? super MethodDescription> methodMatcher, boolean matchFieldRead, boolean matchFieldWrite, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution.Factory substitutionFactory) 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.substitutionFactory
- The substitution factory to create a substitution from.
-
-
Method Details
-
of
protected static MemberSubstitution.Replacement.Factory of(ElementMatcher<? super ByteCodeElement.Member> matcher, MemberSubstitution.Substitution.Factory factory) Creates a factory for applying a substitution on all matched byte code elements for all access types.- Parameters:
matcher
- The matcher to apply.factory
- The substitution factory to create a substitution from.- Returns:
- An appropriate replacement factory for the supplied matcher and substitution factory.
-
ofField
protected static MemberSubstitution.Replacement.Factory ofField(ElementMatcher<? super FieldDescription.InDefinedShape> matcher, boolean matchFieldRead, boolean matchFieldWrite, MemberSubstitution.Substitution.Factory factory) Creates a factory that only matches field access for given access types.- Parameters:
matcher
- The matcher to identify fields for substitution.matchFieldRead
-true
if field read access should be matched.matchFieldWrite
-true
if field write access should be matched.factory
- The substitution factory to apply for fields that match the specified criteria.- Returns:
- An appropriate replacement factory.
-
ofMethod
protected static MemberSubstitution.Replacement.Factory ofMethod(ElementMatcher<? super MethodDescription> matcher, boolean includeVirtualCalls, boolean includeSuperCalls, MemberSubstitution.Substitution.Factory factory) Creates a factory that only matches method and constructor invocations for given invocation types.- Parameters:
matcher
- The matcher to identify methods and constructors for substitution.includeVirtualCalls
-true
if virtual method calls should be matched.includeSuperCalls
-true
if super method calls should be matched.factory
- The substitution factory to apply for methods and constructors that match the specified criteria.- Returns:
- An appropriate replacement factory.
-
make
public MemberSubstitution.Replacement make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypePool typePool) Creates a replacement for an instrumented method.- Specified by:
make
in interfaceMemberSubstitution.Replacement.Factory
- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.typePool
- The type pool being used within the member substitution being applied.- Returns:
- A replacement to use within the supplied instrumented method.
-