Interface MemberSubstitution.Replacement

All Known Implementing Classes:
MemberSubstitution.Replacement.ForDynamicInvocation, MemberSubstitution.Replacement.ForElementMatchers, MemberSubstitution.Replacement.ForFirstBinding, MemberSubstitution.Replacement.NoOp
Enclosing class:
MemberSubstitution

protected static interface MemberSubstitution.Replacement
A replacement combines a MemberSubstitution.Substitution and a way of choosing if this substitution should be applied for a discovered member.
  • Method Details

    • bind

      MemberSubstitution.Replacement.Binding bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, TypeDescription typeDescription, FieldDescription fieldDescription, boolean writeAccess)
      Binds this replacement for a field that was discovered.
      Parameters:
      instrumentedType - The instrumented type.
      instrumentedMethod - The instrumented method.
      typeDescription - The type on which the field was read.
      fieldDescription - The field that was discovered.
      writeAccess - true if this field was written to.
      Returns:
      A binding for the discovered field access.
    • bind

      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.
      Parameters:
      instrumentedType - The instrumented type.FieldDescription
      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.
    • bind

      MemberSubstitution.Replacement.Binding bind(TypeDescription instrumentedType, MethodDescription instrumentedMethod, JavaConstant.MethodHandle methodHandle, JavaConstant.MethodType methodType, String name, List<JavaConstant> constants)
      Binds this replacement for a dynamic method invocation that was discovered.
      Parameters:
      instrumentedType - The instrumented type.FieldDescription
      instrumentedMethod - The instrumented method.
      methodHandle - The method handle of the bootstrap method.
      methodType - The type of the method that is bound.
      name - The name of the method that is bound.
      constants - The constant arguments to the bootstrap method.
      Returns:
      A binding for the discovered method invocation.