Class MethodInvocation.Invocation

    • Constructor Detail

      • Invocation

        protected Invocation​(MethodDescription.InDefinedShape methodDescription)
        Creates an invocation of a given method on its declaring type as an invocation target.
        Parameters:
        methodDescription - The method to be invoked.
      • Invocation

        protected Invocation​(MethodDescription.InDefinedShape methodDescription,
                             TypeDescription typeDescription)
        Creates an invocation of a given method on a given invocation target type.
        Parameters:
        methodDescription - The method to be invoked.
        typeDescription - The type on which this method is to be invoked.
    • Method Detail

      • isValid

        public boolean isValid()
        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.
      • apply

        public StackManipulation.Size apply​(org.objectweb.asm.MethodVisitor methodVisitor,
                                            Implementation.Context implementationContext)
        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.
      • dynamic

        public StackManipulation dynamic​(java.lang.String methodName,
                                         TypeDescription returnType,
                                         java.util.List<? extends TypeDescription> methodType,
                                         java.util.List<?> arguments)
        Invokes the method as a bootstrap method to bind a call site with the given properties. Note that the Java virtual machine currently only knows how to resolve bootstrap methods that link static methods or a constructor.
        Specified by:
        dynamic in interface MethodInvocation.WithImplicitInvocationTargetType
        Parameters:
        methodName - The name of the method to be bound.
        returnType - The return type of the method to be bound.
        methodType - The parameter types of the method to be bound.
        arguments - The arguments to be passed to the bootstrap method.
        Returns:
        A stack manipulation that represents the dynamic method invocation.