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.
  • Field Details

    • fieldMatcher

      private final ElementMatcher<? super FieldDescription.InDefinedShape> fieldMatcher
      The field matcher to consider when discovering fields.
    • methodMatcher

      private final ElementMatcher<? super MethodDescription> methodMatcher
      The method matcher to consider when discovering methods.
    • matchFieldRead

      private final boolean matchFieldRead
      true if field reading access should be matched.
    • matchFieldWrite

      private final boolean matchFieldWrite
      true if field writing access should be matched.
    • includeVirtualCalls

      private final boolean includeVirtualCalls
      true if virtual method calls should be matched.
    • includeSuperCalls

      private final boolean includeSuperCalls
      true if super method calls should be matched.
    • substitutionFactory

      private final MemberSubstitution.Substitution.Factory 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

      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 interface MemberSubstitution.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.