DocFlex/Javadoc 1.6.0: Multi-Format Doclet & Doclet Development Tool

About DocFlex/Javadoc

DocFlex/Javadoc is both a multi-format Javadoc Doclet and a programming tool for rapid development of Javadoc-based Java API documentation generators in various output formats, which by their quality and complexity are equal or exceed the standard Javadoc.

Template-Driven Doclet Architecture

Data Processing Model

Output Formats

Doclet GUI

A JavaDoc generator implemented as {DocFlex Doclet + template set} is controlled by lots of settings, which include: Of course, all such settings can be assigned using options on the Javadoc command line (most, actually, have their default values). But there may be so many of them!

So, besides command line options, DocFlex Doclet provides a more user-friendly way to control the template-based doclets interactively -- the Doclet GUI:

System Requirements

DocFlex/Javadoc requires the Javadoc Tool delivered with one of the following Java Development Kits (JDK) or their equivalents: Since DocFlex/Javadoc is a pure Java application (the Template Designer GUI is based entirely on Swing), it is supposed to work on any operating system with the installed JDK.

Specifically, the software available for downloads includes both MS Windows BAT files and Linux shell script files to run DocFlex/Javadoc immediately on those operating systems. We have been also reported that DocFlex/Javadoc worked well on Mac OS X.

Integrations

As being a Javadoc Doclet (that is a special plug-in for Javadoc), DocFlex Doclet can be integrated with probably anything that runs Javadoc itself.

We have worked out and tested the integrations with the following systems:

Sample Ant buildfile and Maven POM file are included in the distributed software archive.

Supplied Templates

DocFlex/Javadoc is currently supplied with two ready to use template sets:
  1. Basic Template Set

    This is an early version of standard templates provided before DocFlex/Javadoc v1.6.0. It is able to generate both HTML (framed/single file) and RTF JavaDoc for any Java projects, however, this will include only basic content: project overview, package summaries, class details. All Java 5 language features are fully supported.

  2. JavadocPro

    See: JavadocPro Template Set

JavadocPro Template Set

“JavadocPro” is a new template set available since DocFlex/Javadoc v1.6.0. Using it you can generate: This everything is complemented with a possibility to selectively filter classes and members by tags/annotations.

JavadocPro template set home page: http://www.filigris.com/products/docflex_javadoc/templates/JavadocPro/

What you can generate with it

Filtering of classes/members by tags/annotations

You can identify classes and members to be documented both: The inclusion/exclusions of classes is controlled and processed separately, which allows you to exclude specific classes from the documentation, yet to let some their public/protected members be visible still. At that, the generated JavaDoc will look as if the excluded classes themselves did never exist at all, however, everything else is in place and correct.

This takes into account the following effects:

More than 70 parameters to customize your JavaDoc

On the following screenshot you can see the Parameter Inspector loaded with the parameters of FramedDoc.tpl (click to view the fully expanded form):

Specifying parameters via Standard Doclet options

JavadocPro maps some of the Standard Doclet options to the default values of appropriate template parameters. This lets you using those options instead of specifying the corresponding parameters.

Combined Screenshot

DocFlex/Javadoc Editions

DocFlex/Javadoc comes in two editions:

Benefits of DocFlex/Javadoc

About DocFlex

DocFlex is a technology for development of high quality template-driven documentation/report generators from any kind of data provided by various software applications via their standard Java APIs.

Key Concepts

It is based on four generalizations:
  1. The mapping of the entire Java API onto a virtual XML-like representation made of some elements and attributes so as to process it in a universal way using techniques borrowed from the field of XML, like XPath (or more precisely, a conceptual analogue of XPath with some extensions not present in it).
  2. The abstract formatting concept based on four layouts (flow of text, flow of paragraphs or paragraph-like objects, tables and lists), which can be rendered in most modern document formats (e.g. HTML, RTF, XSL-FO etc.)
  3. The automatic generation of hyperlinks (or their page number reference equivalents) by matching sets of keys produced from certain natural properties of the objects (entities) being documented and hyper-linked.
  4. The representation of the entire object controlling structure of an output generator (made on the first three principles) in the form of a special plain-text file called template, which can be created and edited using a graphic template designer that visualizes all the controlling objects (now becoming template components) in a form resembling the output they produce.

    Since the template themselves are not true computer programs, something needs them to interpret. That is called the template interpreter / output generator.

Other Applications

DocFlex/Javadoc is not the only application of DocFlex technology. Currently, there are a few others:

Links

DocFlex/Javadoc home page: http://www.filigris.com/products/docflex_javadoc/

DocFlex/Javadoc examples: http://www.filigris.com/products/docflex_javadoc/examples/

Free downloads: http://www.filigris.com/downloads/

This original article can be found at: http://www.filigris.com/ann/docflex_javadoc_v1.6.0/