xdoclet - create a Task
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
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
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
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
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
- extends TemplateSubTask
- provides the tag @ant.element display-name=<for docu> name=<name in your buildfile> parent=<the parent task>
- provide the default template, in this case my template to generate a LabelProvider
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
Last modified 2005-10-10 12:43 AM