Class MethodDelegationBinder.MethodBinding.Builder

java.lang.Object
net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder
Enclosing interface:
MethodDelegationBinder.MethodBinding

public static class MethodDelegationBinder.MethodBinding.Builder extends Object
A mutable builder that allows to compose a MethodDelegationBinder.MethodBinding by adding parameter bindings incrementally.
  • Field Details

    • methodInvoker

      private final MethodDelegationBinder.MethodInvoker methodInvoker
      The method invoker for invoking the actual method that is bound.
    • candidate

      private final MethodDescription candidate
      The target method that for which a binding is to be constructed by this builder..
    • parameterStackManipulations

      private final List<StackManipulation> parameterStackManipulations
      The current list of stack manipulations for loading values for each parameter onto the operand stack.
    • registeredTargetIndices

      private final LinkedHashMap<Object,Integer> registeredTargetIndices
      A mapping of identification tokens to the parameter index they were bound for.
    • nextParameterIndex

      private int nextParameterIndex
      The index of the next parameter that is to be bound.
  • Constructor Details

    • Builder

      public Builder(MethodDelegationBinder.MethodInvoker methodInvoker, MethodDescription candidate)
      Creates a new builder for the binding of a given method.
      Parameters:
      methodInvoker - The method invoker that is used to create the method invocation of the target method.
      candidate - The target method that is target of the binding.
  • Method Details

    • append

      public boolean append(MethodDelegationBinder.ParameterBinding<?> parameterBinding)
      Appends a stack manipulation for the next parameter of the target method.
      Parameters:
      parameterBinding - A binding representing the next subsequent parameter of the method.
      Returns:
      false if the parameterBindingToken was already bound. A conflicting binding should usually abort the attempt of binding a method and this Builder should be discarded.
    • build

      public MethodDelegationBinder.MethodBinding build(StackManipulation terminatingManipulation)
      Creates a binding that represents the bindings collected by this Builder.
      Parameters:
      terminatingManipulation - A stack manipulation that is applied after the method invocation.
      Returns:
      A binding representing the parameter bindings collected by this builder.