diff -r fd16c54261b3 -r 06bc494ca11e langtools/src/share/classes/com/sun/javadoc/package.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/src/share/classes/com/sun/javadoc/package.html Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,152 @@ + +
++ +Doclets are invoked by javadoc and use this API to write out +program information to files. For example, the standard doclet is called +by default and writes out documentation to HTML files. +
+ +The invocation is defined by the abstract {@link com.sun.javadoc.Doclet} class +-- the entry point is the {@link com.sun.javadoc.Doclet#start(RootDoc) start} method: +
+ public static boolean start(RootDoc root) ++The {@link com.sun.javadoc.RootDoc} instance holds the root of the program structure +information. From this root all other program structure +information can be extracted. +
-public
, -protected
, -package
,
+and -private
) filter program elements, producing a
+result set, called the included set, or "documented" set.
+(The unfiltered set is also available through
+{@link com.sun.javadoc.PackageDoc#allClasses(boolean) allClasses(false)}.)
++ + +Throughout this API, the term class is normally a +shorthand for "class or interface", as in: {@link com.sun.javadoc.ClassDoc}, +{@link com.sun.javadoc.PackageDoc#allClasses() allClasses()}, and +{@link com.sun.javadoc.PackageDoc#findClass(String) findClass(String)}. +In only a couple of other places, it means "class, as opposed to interface", +as in: {@link com.sun.javadoc.Doc#isClass()}. +In the second sense, this API calls out four kinds of classes: +{@linkplain com.sun.javadoc.Doc#isOrdinaryClass() ordinary classes}, +{@linkplain com.sun.javadoc.Doc#isEnum() enums}, +{@linkplain com.sun.javadoc.Doc#isError() errors} and +{@linkplain com.sun.javadoc.Doc#isException() exceptions}. +Throughout the API, the detailed description of each program element +describes explicitly which meaning is being used. +
+
+
+A qualified class or interface name is one that has its package
+name prepended to it, such as java.lang.String
. A non-qualified
+name has no package name, such as String
.
+
@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()); + } + } + } +} ++Interfaces and methods from the Javadoc API are marked in +red. +{@link com.sun.javadoc.Doclet Doclet} is an abstract class that specifies +the invocation interface for doclets, +{@link com.sun.javadoc.Doclet Doclet} holds class or interface information, +{@link com.sun.javadoc.ExecutableMemberDoc} is a +superinterface of {@link com.sun.javadoc.MethodDoc} and +{@link com.sun.javadoc.ConstructorDoc}, +and {@link com.sun.javadoc.ParamTag} holds information +from "
@param
" tags.
++This doclet when invoked with a command line like: +
+ javadoc -doclet ListParams -sourcepath <source-location> java.util ++producing 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 + +