O'Reilly logo

Java Extreme Programming Cookbook by Brian M. Coyner, Eric M. Burke

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Creating an XDoclet Tag Handler

Problem

You want to create a new XDoclet Tag Handler.

Solution

Extend the xdoclet.XDocletTagSupport class; write public methods that perform logic and generate content. The methods are referenced in an XDoclet template file (.xdt).

Discussion

The previous recipe created a custom Ant XDoclet subtask, providing an entry point into our custom code generator. Now it is time to write the tag handler class, which is responsible for generating snippets of content and performing simple logic.

There are no methods that must be overridden or directly implemented when creating a custom tag handler. Rather, you create public methods that a template file references.

Let’s see how to write the tag handler class JUnitPerfTagHandler :

  1. Create a new Java source file called JUnitPerfTagHandler.java and add it to your project.

  2. Add the following imports:

    import xdoclet.XDocletException;
    import xdoclet.XDocletTagSupport;
    import xdoclet.tagshandler.TypeTagsHandler;
    import java.text.MessageFormat;
  3. Extend the XDocletTagSupport class:

    public class JUnitPerfTagHandler extends XDocletTagSupport {
  4. Add public methods to generate snippets of content and to perform logic.

Step three deserves further explanation. There are two categories of methods used in a tag handler class: block and content.

Block

Block methods are used for iterating and performing logic, which is synonymous with for loops and if statements. A block method accepts a single parameter containing any content that should be parsed ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required