Doclet (Java SE 12 & JDK 12 )
Keywords: jdk.javadoc.doclet.Doclet interface

Module jdk.javadoc
Package jdk.javadoc.doclet

## Interface Doclet

- All Known Implementing Classes:
    `StandardDoclet`

      public interface Doclet

  The user doclet must implement this interface, as described in the package description. Each implementation of a Doclet must provide a public no-argument constructor to be used by tools to instantiate the doclet. The tool infrastructure will interact with classes implementing this interface as follows:
  1. The tool will create an instance of a doclet using the no-arg constructor of the doclet class.
  2. Next, the tool calls the `init` method with an appropriate locale and reporter.
  3. Afterwards, the tool calls `getSupportedOptions`, and `getSupportedSourceVersion`. These methods are only called once.
  4. As appropriate, the tool calls the `run` method on the doclet object, giving it a DocletEnvironment object, from which the doclet can determine the elements to be included in the documentation.

  If a doclet object is created and used without the above protocol being followed, then the doclet's behavior is not defined by this interface specification.

  To start the doclet, pass `-doclet` followed by the fully-qualified name of the entry point class (i.e. the implementation of this interface) on the javadoc tool command line.

  Since:
    9

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `Doclet.Option` | An encapsulation of option name, aliases, parameters and descriptions as used by the Doclet.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getName()` | Returns a name identifying the doclet.
    `Set<? extends Doclet.Option>` | `getSupportedOptions()` | Returns all the supported options.
    `SourceVersion` | `getSupportedSourceVersion()` | Returns the version of the Java Programming Language supported by this doclet.
    `void` | `init​(Locale locale, Reporter reporter)` | Initializes this doclet with the given locale and error reporter.
    `boolean` | `run​(DocletEnvironment environment)` | The entry point of the doclet.

- - ### Method Detail

    - #### init

          void init​(Locale locale,
                    Reporter reporter)

      Initializes this doclet with the given locale and error reporter. This locale will be used by the reporter and the doclet components.
      Parameters:
        `locale` - the locale to be used
        `reporter` - the reporter to be used

    - #### getName

          String getName()

      Returns a name identifying the doclet. A name is a simple identifier without white spaces, as defined in The Java™ Language Specification, section 6.2 "Names and Identifiers".
      Returns:
        name of the Doclet

    - #### getSupportedOptions

          Set<? extends Doclet.Option> getSupportedOptions()

      Returns all the supported options.
      Returns:
        a set containing all the supported options, an empty set if none

    - #### getSupportedSourceVersion

          SourceVersion getSupportedSourceVersion()

      Returns the version of the Java Programming Language supported by this doclet.
      Returns:
        the language version supported by this doclet, usually the latest version

    - #### run

          boolean run​(DocletEnvironment environment)

      The entry point of the doclet. Further processing will commence as instructed by this method.
      Parameters:
        `environment` - from which essential information can be extracted
      Returns:
        true on success