Class ExecutableInvoker


  • @API(status=INTERNAL,
         since="5.0")
    public class ExecutableInvoker
    extends java.lang.Object
    ExecutableInvoker encapsulates the invocation of a Executable (i.e., method or constructor), including support for dynamic resolution of method parameters via ParameterResolvers.
    Since:
    5.0
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T> T invoke​(java.lang.reflect.Constructor<T> constructor, java.util.Optional<java.lang.Object> outerInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Constructor<T>,​T> interceptorCall)
      Invoke the supplied constructor with the supplied outer instance and dynamic parameter resolution.
      <T> T invoke​(java.lang.reflect.Method method, java.lang.Object target, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry extensionRegistry, ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Method,​T> interceptorCall)
      Invoke the supplied static method with dynamic parameter resolution.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExecutableInvoker

        public ExecutableInvoker()
    • Method Detail

      • invoke

        public <T> T invoke​(java.lang.reflect.Constructor<T> constructor,
                            java.util.Optional<java.lang.Object> outerInstance,
                            org.junit.jupiter.api.extension.ExtensionContext extensionContext,
                            ExtensionRegistry extensionRegistry,
                            ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Constructor<T>,​T> interceptorCall)
        Invoke the supplied constructor with the supplied outer instance and dynamic parameter resolution.

        This method should only be used to invoke the constructor for an inner class.

        Parameters:
        constructor - the constructor to invoke and resolve parameters for
        outerInstance - the outer instance to supply as the first argument to the constructor; empty, for top-level classes
        extensionContext - the current ExtensionContext
        extensionRegistry - the ExtensionRegistry to retrieve ParameterResolvers from
        interceptorCall - the call for intercepting this constructor invocation via all registered interceptors
      • invoke

        public <T> T invoke​(java.lang.reflect.Method method,
                            java.lang.Object target,
                            org.junit.jupiter.api.extension.ExtensionContext extensionContext,
                            ExtensionRegistry extensionRegistry,
                            ExecutableInvoker.ReflectiveInterceptorCall<java.lang.reflect.Method,​T> interceptorCall)
        Invoke the supplied static method with dynamic parameter resolution.
        Parameters:
        method - the method to invoke and resolve parameters for
        extensionContext - the current ExtensionContext
        extensionRegistry - the ExtensionRegistry to retrieve ParameterResolvers from
        interceptorCall - the call for intercepting this method invocation via all registered interceptors