The javadoc API is used to customize the output of javadoc. Doclets are invoked by javadoc and use this API to obtain program structure information. The invocation is defined by the abstract Doclet class - the entry point is the start method:
    public static boolean start(RootDoc root)
The RootDoc instance holds the root of the program structure information. From this root all other program structure information can be extracted. For example, the following doclet displays information in the @param tags of the processed classes:
import com.sun.javadoc.*;

public class ListParams extends Doclet {

    public static boolean start(RootDoc root) {
        ClassDoc[] classes = root.classes();
        for (int i = 0; i < classes.length; ++i) {
            ClassDoc cd = classes[i];
            printMembers(cd.constructors());
            printMembers(cd.methods());
        }
        return true;
    }

    static void printMembers(ExecutableMemberDoc[] mems) {
        for (int i = 0; i < mems.length; ++i) {
            ParamTag[] params = mems[i].paramTags();
            System.out.println(mems[i].qualifiedName());
            for (int j = 0; j < params.length; ++j) {
                System.out.println("   " + params[j].parameterName()
                    + " - " + params[j].parameterComment());
            }
        }
    }        
}
Methods from the javadoc API are marked in red. Interfaces from the javadoc API are marked in green (Doclet is an abstract class that specifies the invocation interface for doclets, ClassDoc holds class information, ExecutableMemberDoc is a superinterface of MethodDoc and ConstructorDoc, and ParamTag holds information from "@param" tags.

This doclet when invoked with a command line like:

    javadoc -doclet ListParams -sourcepath <source-location> java.util
produces output like:
    ...
    java.util.ArrayList.add
       index - index at which the specified element is to be inserted.
       element - element to be inserted.
    java.util.ArrayList.remove
       index - the index of the element to removed.
    ...

@see com.sun.javadoc.Doclet @see com.sun.javadoc.RootDoc