The *Task* entities defined in a *Processor* definition can be implemented as dedicated native java plugins or as scripts written in Perl, Python or Shell.
## Java plugins
Dedicated native java plugins can be developed by implementing the GenericTaskInterface process method defined in the DES library
**GenericTaskInterface Interface**
```java
publicinterfaceGenericTaskInterface{
/**
*
* @param basepath Basepath as configured in DistributionServer.ini
* @param aoi_name AOI name contained in the $processor.processor_config.xml
* @param processor_name Processor name related to the $processor.processor_config.xml
* @param entity_name Name of executing entity (Task, Consumer, etc.)
* @param parameters Parameters as defined by <Parameter>
* @param args List of arguments of the Task (String or Hashtables, to be checked by the plugin)
* @param files List of files of the Task iff <FileType>regexp</FileType> is defined, else null
The parameters can be passed to the *Task* plugin with one of the following options:
- By using a custom keyword tag eg. *FilePrefix* in the *Task* definition and then accessing the parameter with the Hashtable parameters in the Interface