Skip to content

Metabolomics Fiehn Lab

Sections
Personal tools
You are here: Home » Members » Gert Wohlgemuth » java » xdoclet - create a Task

xdoclet - create a Task

Document Actions
this howto create a own task and subtask
After I started to creating my own TagHandlers an Templates with xdoclet, I was thinking, would be damn nice to group them together.
so something like this

        <taskdef name="swt" classname="..." classpathref="..." />

        <swt destdir="...">

            <fileset dir="src">
                <include name="*/**.java" />
            </fileset>

            <labelprovider />
            <contentprovider />
            <sorter />
            <..../>

        </swt>

In my case I have subtasks to help me with jface and my objects
  • labelprovider, generates jface labelprovider
  • contentprovider, generates jface contentprovider
  • sorter, generates my sorter
  • ..., and so one
As first we need our Task

package edu.ucdavis.genomics.metabolomics.binbase.bdi.xdoclet.task.swt;

import xdoclet.DocletTask;

public class SWTTask extends DocletTask{

    /**
     *
     */
    public SWTTask() {
        super();
    }

}

It's just a subtask from DocletTask

Next our SubTask

package edu.ucdavis.genomics.metabolomics.binbase.bdi.xdoclet.task.swt;

import xdoclet.TemplateSubTask;

/**
 * @ant.element   display-name="Label Provider" name="labelprovider" parent="edu.ucdavis.genomics.metabolomics.binbase.bdi.xdoclet.task.swt.SWTTask"
 */
public class LabelProviderSubTask extends TemplateSubTask{

    /**
     * the fild for this task
     */
    private static String DEFAULT_TEMPLATE_FILE = "resources/swt-labelprovider.xdt";

    public LabelProviderSubTask(){
        setDestinationFile("{0}LabelProvider.java");
        setTemplateURL(getClass().getResource(DEFAULT_TEMPLATE_FILE));
        setHavingClassTag("swt.label");
    }  
}


the important parts are
  1. extends TemplateSubTask
  2. provides the tag @ant.element display-name=<for docu> name=<name in your buildfile> parent=<the parent task>
  3. provide the default template, in this case my template to generate a LabelProvider
If you want to provide settings to your Task/SubTask from your buildfile. This is done with simple Getter and Setter Methods. Like in any regular AntTask.

You also validate all your tags in your Task, you just have to override this method.

If you need create some Taghandler

create a TagHandler


Next create your Template file

now it's time to create the template File what actual creates the labelprovider.

Finally create a module

create a module
Created by zwluxx
Last modified 2005-10-10 12:43 AM
 

Powered by Plone

This site conforms to the following standards: