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
-
-
Constructor Summary
Constructors Modifier Constructor Description 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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MemberSubstitution.Replacement
make(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypePool typePool)
Creates a replacement for an instrumented method.protected static MemberSubstitution.Replacement.Factory
of(ElementMatcher<? super ByteCodeElement> 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.
-
-
-
Constructor Detail
-
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 Detail
-
of
protected static MemberSubstitution.Replacement.Factory of(ElementMatcher<? super ByteCodeElement> 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.
-
-