Class MemberSubstitution.Replacement.Binding.ForDynamicInvocation

java.lang.Object
net.bytebuddy.asm.MemberSubstitution.Replacement.Binding.ForDynamicInvocation
All Implemented Interfaces:
MemberSubstitution.Replacement.Binding
Enclosing interface:
MemberSubstitution.Replacement.Binding

@Enhance public static class MemberSubstitution.Replacement.Binding.ForDynamicInvocation extends Object implements MemberSubstitution.Replacement.Binding
A binding that was resolved for an invokedynamic expression.
  • Field Details

    • methodType

      private final JavaConstant.MethodType methodType
      The type of the lambda expression that is to be bound.
    • name

      private final String name
      The name of the lambda expression target.
    • arguments

      private final List<JavaConstant> arguments
      The constant arguments supplied to the bootstrap method.
    • substitution

      private final MemberSubstitution.Substitution substitution
      The substitution to apply.
  • Constructor Details

    • ForDynamicInvocation

      public ForDynamicInvocation(JavaConstant.MethodType methodType, String name, List<JavaConstant> arguments, MemberSubstitution.Substitution substitution)
      Creates a resolved binding for an invokedynamic expression.
      Parameters:
      methodType - The type of the lambda expression that is to be bound.
      name - The name of the lambda expression target.
      arguments - The constant arguments supplied to the bootstrap method.
      substitution - The substitution to apply.
  • Method Details

    • isBound

      public boolean isBound()
      Returns true if this binding is resolved.
      Specified by:
      isBound in interface MemberSubstitution.Replacement.Binding
      Returns:
      true if this binding is resolved.
    • make

      public StackManipulation make(TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, int freeOffset)
      Creates a stack manipulation that represents the substitution. This method can only be called for actually bound bindings.
      Specified by:
      make in interface MemberSubstitution.Replacement.Binding
      Parameters:
      parameters - The parameters that are accessible to the substitution target.
      result - The result that is expected from the substitution target or void if none is expected.
      methodHandle - A method handle that represents the original expression that is being substituted.
      stackManipulation - The original byte code expression that is being substituted.
      freeOffset - The first offset that can be used for storing local variables.
      Returns:
      A stack manipulation that represents the replacement.