If you really wanted to use Javadoc, you could choose the appropriate verification document.
Here is an example:
package de.fencing_game.paul.examples.doclet; import com.sun.javadoc.*; public class CheckingDoclet extends Doclet { private static void checkElement(ProgramElementDoc ped, DocErrorReporter err) { if(ped.commentText().equals("")) { err.printError(ped.position(), ped + " has no documentation!"); } } private static void checkAll(ProgramElementDoc[] array, DocErrorReporter err) { for(ProgramElementDoc ped : array) { checkElement(ped, err); } } public static boolean start(RootDoc root) { for(ClassDoc clazz : root.classes()) { checkElement(clazz, root); checkAll(clazz.constructors(), root); checkAll(clazz.fields(), root); checkAll(clazz.enumConstants(), root); checkAll(clazz.methods(), root); } return true; } }
Running the doclet on itself (with ant) โโgives this output:
doccheck.doclet: [javadoc] Generating Javadoc [javadoc] Javadoc execution [javadoc] Loading source files for package de.fencing_game.paul.examples.doclet... [javadoc] Constructing Javadoc information... [javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:7: error - de.fencing_game.paul.examples.doclet.CheckingDoclet has no documentation! [javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:7: error - de.fencing_game.paul.examples.doclet.CheckingDoclet() has no documentation! [javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:9: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.checkElement(com.sun.javadoc.ProgramElementDoc, com.sun.javadoc.DocErrorReporter) has no documentation! [javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:16: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.checkAll(com.sun.javadoc.ProgramElementDoc[], com.sun.javadoc.DocErrorReporter) has no documentation! [javadoc] de/fencing_game/paul/examples/doclet/CheckingDoclet.java:23: error - de.fencing_game.paul.examples.doclet.CheckingDoclet.start(com.sun.javadoc.RootDoc) has no documentation! [javadoc] 5 errors BUILD SUCCESSFUL Total time: 2 seconds
If we want this to fail when one error is detected, then we must return false from the start method.
source share