# Class SunDoclet

java.lang.Object
uk.ac.starlink.ttools.build.SunDoclet

public class SunDoclet extends Object
Doclet for documenting user-visible JEL classes, based on the com.sun.javadoc API.

At Java 8 and below, the `com.sun.javadoc` API is the standard/only way to parse javadocs. At Java 9 it is deprecated in favour of the `jdk.javadoc.doclet` API, and at Java 17 it is withdrawn altogether.

If the target build platform is ever moved to Java 9 or later, this class should be retired in favour of `JdkDoclet`.

Since:
  26 Jan 2023
Author:
  Mark Taylor

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`SunDoclet.Html`
Class for use with `javadoc` tool that writes MethodBrowser-friendly HTML output.
`static class`
`SunDoclet.Xml`
Class for use with `javadoc` tool that writes SUN-friendly XML output.

## Constructor Summary

Constructors
Constructor
Description
`SunDoclet(RootDoc root, DocletOutput output)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static LanguageVersion`
`languageVersion()`
This magic static method appears to be required on Doclet classes to make the `isVarArgs()` method on `com.sun.javadoc.ExecutableMemberDoc` report variable argument status.
`boolean`
`process()`
Works through the root document invoking the various protected methods to produce output.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SunDoclet

public SunDoclet(RootDoc root, DocletOutput output)
Constructor.

Parameters:
  `root` - document tree root
  `output` - output destination

## Method Details

### process

public boolean process() throws IOException
Works through the root document invoking the various protected methods to produce output.

Throws:
  `IOException`

### languageVersion

public static LanguageVersion languageVersion()
This magic static method appears to be required on Doclet classes to make the `isVarArgs()` method on `com.sun.javadoc.ExecutableMemberDoc` report variable argument status. I don't know whether or where that's documented, but I found out from StackOverflow.

Returns:
  LanguageVersion.JAVA_1_5