Enum MemberSubstitution.Source

java.lang.Object
java.lang.Enum<MemberSubstitution.Source>
net.bytebuddy.asm.MemberSubstitution.Source
All Implemented Interfaces:
Serializable, Comparable<MemberSubstitution.Source>, java.lang.constant.Constable
Enclosing class:
MemberSubstitution

public static enum MemberSubstitution.Source extends Enum<MemberSubstitution.Source>
Identifies the source of an instruction that might describe a value of the substituted element or the instrumented method.
  • Enum Constant Details

    • SUBSTITUTED_ELEMENT

      public static final MemberSubstitution.Source SUBSTITUTED_ELEMENT
      Indicates that an element should be loaded in context of the substituted method, constructor or field.
    • ENCLOSING_METHOD

      public static final MemberSubstitution.Source ENCLOSING_METHOD
      Indicates that an element should be loaded in context of the instrumented method.
  • Constructor Details

    • Source

      private Source()
  • Method Details

    • values

      public static MemberSubstitution.Source[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static MemberSubstitution.Source valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • self

      @MaybeNull protected abstract MemberSubstitution.Source.Value self(TypeList.Generic parameters, Map<Integer,Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod)
      Resolves a value representation of the this reference or null if no such reference is available.
      Parameters:
      parameters - The list of parameters of the substituted element.
      offsets - A mapping of offsets of parameter indices to offsets.
      target - The target member of invokedynamic invocation.
      instrumentedMethod - The instrumented method.
      Returns:
      A representation of the this reference or null if no such reference is available.
    • argument

      @MaybeNull protected abstract MemberSubstitution.Source.Value argument(int index, TypeList.Generic parameters, Map<Integer,Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod)
      Resolves a value representation of the parameter of the specified index or null if no such parameter is available.
      Parameters:
      index - The index of the targeted parameter.
      parameters - The list of parameters of the substituted element.
      offsets - A mapping of offsets of parameter indices to offsets.
      target - The target member of invokedynamic invocation.
      instrumentedMethod - The instrumented method.
      Returns:
      A representation of the parameter of the specified index or null if no such parameter is available.
    • arguments

      protected abstract List<MemberSubstitution.Source.Value> arguments(boolean includesSelf, TypeList.Generic parameters, Map<Integer,Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod)
      Resolves a list of value representation of all parameters.
      Parameters:
      includesSelf - true if the this reference should be included if available.
      parameters - The list of parameters of the substituted element.
      offsets - A mapping of offsets of parameter indices to offsets.
      target - The target member of invokedynamic invocation.
      instrumentedMethod - The instrumented method.
      Returns:
      A list of representation of all values of all parameters.
    • handle

      protected abstract JavaConstant.MethodHandle handle(JavaConstant.MethodHandle methodHandle, MethodDescription instrumentedMethod)
      Resolves a method handle.
      Parameters:
      methodHandle - A method handle of the substituted element.
      instrumentedMethod - The instrumented method.
      Returns:
      An appropriate method handle.
    • isRepresentable

      Validates if the supplied origin sort is representable.
      Parameters:
      sort - The sort of origin.
      target - The target member of invokedynamic invocation.
      instrumentedMethod - The instrumented method.
      Returns:
      true if the supplied sort of origin is representable.
    • resolve

      Resolves a stack manipulation that loads the supplied sort of origin onto the operand stack.
      Parameters:
      sort - The sort of origin.
      target - The target member of invokedynamic invocation.
      parameters - The parameters to the substituted element.
      result - The type upon which the substituted element is invoked.
      instrumentedMethod - The instrumented method.
      Returns:
      A stack manipulation loading the supplied sort of origin onto the operand stack.