Class MethodDelegationBinder.MethodBinding.Builder.Build

    • Constructor Detail

      • Build

        protected Build​(MethodDescription target,
                        java.util.Map<?,​java.lang.Integer> registeredTargetIndices,
                        StackManipulation methodInvocation,
                        java.util.List<StackManipulation> parameterStackManipulations,
                        StackManipulation terminatingStackManipulation)
        Creates a new method binding.
        Parameters:
        target - The target method this binding represents.
        registeredTargetIndices - A map of identification tokens to the indices of their binding parameters.
        methodInvocation - A stack manipulation that represents the actual method invocation.
        parameterStackManipulations - A list of manipulations that each represent the loading of a parameter value onto the operand stack.
        terminatingStackManipulation - The stack manipulation that is applied after the method invocation.
    • Method Detail

      • isValid

        public boolean isValid()
        Description copied from interface: StackManipulation
        Determines if this stack manipulation is valid.
        Specified by:
        isValid in interface StackManipulation
        Returns:
        If false, this manipulation cannot be applied and should throw an exception.
      • getTargetParameterIndex

        public java.lang.Integer getTargetParameterIndex​(java.lang.Object parameterBindingToken)
        Description copied from interface: MethodDelegationBinder.MethodBinding
        Returns the target method's parameter index for a given parameter binding token.

         

        A binding token can be any object that implements valid Object.hashCode() and Object.equals(Object) methods in order to look up a given binding. This way, two bindings can be evaluated of having performed a similar type of binding such that these bindings can be compared and a dominant binding can be identified by an MethodDelegationBinder.AmbiguityResolver. Furthermore, a binding is implicitly required to insure the uniqueness of such a parameter binding.
        Specified by:
        getTargetParameterIndex in interface MethodDelegationBinder.MethodBinding
        Parameters:
        parameterBindingToken - A token which is used to identify a specific unique binding for a given parameter of the target method.
        Returns:
        The target method's parameter index of this binding or null if no such argument binding was applied for this binding.
      • apply

        public StackManipulation.Size apply​(org.objectweb.asm.MethodVisitor methodVisitor,
                                            Implementation.Context implementationContext)
        Description copied from interface: StackManipulation
        Applies the stack manipulation that is described by this instance.
        Specified by:
        apply in interface StackManipulation
        Parameters:
        methodVisitor - The method visitor used to write the method implementation to.
        implementationContext - The context of the current implementation.
        Returns:
        The changes to the size of the operand stack that are implied by this stack manipulation.