Doclet (Java SE 21 & JDK 21)
Description: declaration: module: jdk.javadoc, package: jdk.javadoc.doclet, interface: Doclet
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 Details

  - ### 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