org.gradle.tooling

## Interface BuildActionExecuter<T>

- Type Parameters:
    `T` - The type of result produced by this executer.
  All Superinterfaces:
    LongRunningOperation

      @Incubating
      public interface BuildActionExecuter<T>
      extends LongRunningOperation

  Used to execute a `BuildAction` in the build process.
  Since:
    1.8

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `run()` Runs the action, blocking until its result is available.
    `void` | `run(ResultHandler<? super T> handler)` Starts executing the action, passing the result to the given handler when complete.

    - ### Methods inherited from interface org.gradle.tooling.LongRunningOperation

      `addProgressListener, setJavaHome, setJvmArguments, setStandardError, setStandardInput, setStandardOutput, withArguments, withCancellationToken`

- - ### Method Detail

    - #### run

          T run()
                throws GradleConnectionException,
                       IllegalStateException

      Runs the action, blocking until its result is available.
      Throws:
        `UnsupportedVersionException` - When the target Gradle version does not support build action execution.
        `UnsupportedOperationConfigurationException` - When the target Gradle version does not support some requested configuration option such as `LongRunningOperation.setStandardInput(java.io.InputStream)`, `LongRunningOperation.setJavaHome(java.io.File)`, `LongRunningOperation.setJvmArguments(String...)`.
        `UnsupportedBuildArgumentException` - When there is a problem with build arguments provided by `LongRunningOperation.withArguments(String...)`.
        `BuildActionFailureException` - When the build action fails with an exception.
        `BuildCancelledException` - When the operation was cancelled before it completed successfully.
        `BuildException` - On some failure executing the Gradle build.
        `GradleConnectionException` - On some other failure using the connection.
        `IllegalStateException` - When the connection has been closed or is closing.
      Since:
        1.8

    - #### run

          void run(ResultHandler<? super T> handler)
                   throws IllegalStateException

      Starts executing the action, passing the result to the given handler when complete. This method returns immediately, and the result is later passed to the given handler's `ResultHandler.onComplete(Object)` method.

      If the operation fails, the handler's `ResultHandler.onFailure(GradleConnectionException)` method is called with the appropriate exception. See `run()` for a description of the various exceptions that the operation may fail with.

      Parameters:
        `handler` - The handler to supply the result to.
      Throws:
        `IllegalStateException` - When the connection has been closed or is closing.
      Since:
        1.8