Class MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution

java.lang.Object
net.bytebuddy.asm.MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution
All Implemented Interfaces:
MemberSubstitution.Substitution.Chain.Step
Enclosing interface:
MemberSubstitution.Substitution.Chain.Step

@Enhance public static class MemberSubstitution.Substitution.Chain.Step.ForArgumentSubstitution extends Object implements MemberSubstitution.Substitution.Chain.Step
A step that substitutes an argument of a given index with a compatible type.
  • Field Details

    • substitution

      private final StackManipulation substitution
      The stack manipulation that loads the substituted argument.
    • typeDescription

      private final TypeDescription.Generic typeDescription
      The type of the substituted argument.
    • index

      private final int index
      The index of the argument to substitute.
    • assigner

      private final Assigner assigner
      The assigner to use for assigning the argument.
    • typing

      private final Assigner.Typing typing
      The typing to use for the argument assignment.
  • Constructor Details

    • ForArgumentSubstitution

      protected ForArgumentSubstitution(StackManipulation substitution, TypeDescription.Generic typeDescription, int index, Assigner assigner, Assigner.Typing typing)
      Creates an argument substitution step.
      Parameters:
      substitution - The stack manipulation that loads the substituted argument.
      typeDescription - The type of the substituted argument.
      index - The index of the argument to substitute.
      assigner - The assigner to use for assigning the argument.
      typing - The typing to use for the argument assignment.
  • Method Details

    • of

      public static MemberSubstitution.Substitution.Chain.Step.Factory of(Object value, int index)
      Resolves a step substitution factory for a compile-time constant to replace an argument value at a given index.
      Parameters:
      value - The compile-time constant to replace.
      index - The index of the substituted argument.
      Returns:
      An appropriate step factory.
    • resolve

      public MemberSubstitution.Substitution.Chain.Step.Resolution resolve(TypeDescription receiver, ByteCodeElement.Member original, TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, TypeDescription.Generic current, Map<Integer,Integer> offsets, int freeOffset)
      Resolves this step of a substitution chain.
      Specified by:
      resolve in interface MemberSubstitution.Substitution.Chain.Step
      Parameters:
      receiver - The target result type of the substitution.
      original - The byte code element that is currently substituted.
      parameters - The parameters of the substituted element.
      result - The resulting type of the substituted element.
      methodHandle - A method handle of the stackManipulation invocation that is being substituted.
      stackManipulation - The byte code instruction that is being substituted.
      current - The current type of the applied substitution that is the top element on the operand stack.
      offsets - The arguments of the substituted byte code element mapped to their local variable offsets.
      freeOffset - The first free offset in the local variable array.
      Returns:
      A resolved substitution step for the supplied inputs.