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