JavaDoc - University of Delaware
Download
Report
Transcript JavaDoc - University of Delaware
Javadoc: Advanced Features
& Limitations
Presented By: Wes Toland
Outline
Extensions
Taglets
Doclets
Limitations
Javadoc vs. Doxygen
Extensions
Most Java developers are happy with
the default functionality of javadoc
Sun also provided the ability for
developers to extend the functionality
of javadoc via:
Taglets
Doclets
Taglets
Javadoc supports almost 20 “tags”
that are used to document the details
of Java classes, methods, etc…
JDK also provides a taglet interface
that developers can implement in
order to support any additional flags
they desire.
Taglets
2 types of Taglets:
Block tags: Must begin at beginning of
line
Inline tags: Can be placed anywhere in
javadoc comments
Example:
/** * @deprecated As of JDK 1.1, replaced by {@link #setBounds(int,int,int,int)} */
@deprecated is a block tag
{@link} is an inline tag
Taglets
Default block tags:
@author
@deprecated
@exception
@param
@return
@see
@serial
@serialData
@serialField
@since
@throws
@version
Default inline tags:
{@code}
{@docRoot}
{@inheritDoc}
{@link}
{@linkplain}
{@literal}
{@value}
Taglets
Developers can add tags to Javadoc
documentation by implementing a Taglet
class
Once the class is implemented, compile it:
> export JDKHOME=/home/toland/jdk5.0
> cd /home/toland/taglets
> javac -classpath $JDKHOME/lib/tools.jar ToDoTaglet.java
Now you can document java source code
that uses the implemented taglet:
> javadoc -tagletpath /home/toland/taglets -taglet ToDoTaglet \
-d /home/toland/www -sourcepath /home/toland/src
\
JavadocDemo.java
Doclets
By default, Javadoc generates the Java API
Documentation in a specific HTML format
using the Standard Doclet.
Developers can customize the content and
format of the API Documentation by either
modifying the Standard Doclet or
implementing a new Doclet.
The MIF Doclet has become a popular
format, and is often used to generate API
documentation in a PDF format.
Doclets
Popular Doclet tools:
Standard Doclet – default HTML API
documentation generation.
MIF Doclet – generate API documentation in MIF
(Maker Interchange Format). Can also convert
HTML files to MIF and PDF.
Doc Check Doclet – extension to Javadoc tool.
Used to review documentation comments and
report empty comments and other ommissions.
Exclude Doclet – a javadoc wrapper program
that allows user to exclude any specified public
or protected classes.
Limitations
Many Java developers hate embedding HTML
tags within Javadoc comments in order to
obtain a certain format of documentation
output.
/** <p>This is a <b>doc</b> comment.
* @see java.lang.Object */
Limitations
Doxygen supports class hierarchy graphs by default.
This feature could be added to Javadoc by extending
the Standard Doclet or creating a new one, but this
would require a large amount of effort.
Figure: An example of a Doxygen class hierarchy graph courtesy of:
http://www-scf.usc.edu/~peterchd/doxygen/
Limitations
In order to reference Javadoc APIs outside of the
class being documented, the full path of the HTML
files being referenced must be specified using the
inline {@link} tag.
Doxygen can automatically generate the API crossreference links for any given class/method/variable
assuming the classpath is set correctly.
Comparison
Supported programming languages:
Javadoc: Java only
Doxygen: C/C++, Java, Python, PHP
Javadoc comments must be directly before the object
being copied, Doxygen is configurable.
Link generation
Java requires explicit object link path
Doxygen requires an object name and will determine link
path
Source code display
Java cannot display source code anywhere in the API
documentation
Doxygen can display AND format source code in
documentation
Comparison
Both support detailed and summarized API views
However, Doxygen can generate 2 separate documents
where Javadoc includes both views in the same
documentation.
Doxygen supports modules/grouping, Javadoc does
not
Doxygen supports structural commands, Javadoc does
not (but this feature is not very desirable)