JavaCompiler.CompilationTask (Java SE 15 & JDK 15)
Description: declaration: module: java.compiler, package: javax.tools, interface: JavaCompiler, interface: CompilationTask
Keywords: javax.tools.JavaCompiler.CompilationTask interface

Module java.compiler
Package javax.tools

# Interface JavaCompiler.CompilationTask

All Superinterfaces:
  `Callable<Boolean>`

All Known Implementing Classes:
  `JavacTask`

Enclosing interface:
  JavaCompiler

    public static interface JavaCompiler.CompilationTask
    extends Callable<Boolean>

Interface representing a future for a compilation task. The compilation task has not yet started. To start the task, call the call method.

Before calling the `call` method, additional aspects of the task can be configured, for example, by calling the setProcessors method.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `addModules​(Iterable<String> moduleNames)` | Adds root modules to be taken into account during module resolution.
  `Boolean` | `call()` | Performs this compilation task.
  `void` | `setLocale​(Locale locale)` | Sets the locale to be applied when formatting diagnostics and other localized data.
  `void` | `setProcessors​(Iterable<? extends Processor> processors)` | Sets processors (for annotation processing).

- ## Method Details

  - ### addModules

    void addModules​(Iterable<String> moduleNames)
    Adds root modules to be taken into account during module resolution. Invalid module names may cause either `IllegalArgumentException` to be thrown, or diagnostics to be reported when the task is started.
    Parameters:
      `moduleNames` - the names of the root modules
    Throws:
      `IllegalArgumentException` - may be thrown for some invalid module names
      `IllegalStateException` - if the task has started
    Since:
      9

  - ### setProcessors

    void setProcessors​(Iterable<? extends Processor> processors)
    Sets processors (for annotation processing). This will bypass the normal discovery mechanism.
    Parameters:
      `processors` - processors (for annotation processing)
    Throws:
      `IllegalStateException` - if the task has started

  - ### setLocale

    void setLocale​(Locale locale)
    Sets the locale to be applied when formatting diagnostics and other localized data.
    Parameters:
      `locale` - the locale to apply; `null` means apply no locale
    Throws:
      `IllegalStateException` - if the task has started

  - ### call

    Boolean call()
    Performs this compilation task. The compilation may only be performed once. Subsequent calls to this method throw `IllegalStateException`.
    Specified by:
      `call` in interface `Callable<Boolean>`
    Returns:
      true if and only all the files compiled without errors; false otherwise
    Throws:
      `RuntimeException` - if an unrecoverable error occurred in a user-supplied component. The cause will be the error in user code.
      `IllegalStateException` - if called more than once