* @return
* @throws FPDLParserException
*/
protected Task createTask(IWFElement parent, Element taskElement)
throws FPDLParserException {
Task task = null;
String type = taskElement.getAttribute(TYPE);
if (Task.FORM.equals(type)) {
task = new FormTask(parent, taskElement.getAttribute(NAME));
((FormTask) task).setAssignmentStrategy(taskElement.getAttribute(COMPLETION_STRATEGY));
((FormTask) task).setDefaultView(taskElement.getAttribute(DEFAULT_VIEW));
((FormTask) task).setPerformer(createPerformer(Util4JAXPParser.child(taskElement,
PERFORMER)));
((FormTask) task).setEditForm(createForm(Util4JAXPParser.child(taskElement, EDIT_FORM)));
((FormTask) task).setViewForm(createForm(Util4JAXPParser.child(taskElement, VIEW_FORM)));
((FormTask) task).setListForm(createForm(Util4JAXPParser.child(taskElement, LIST_FORM)));
} else if (Task.TOOL.equals(type)) {
task = new ToolTask(parent, taskElement.getAttribute(NAME));
((ToolTask) task).setApplication(createApplication(Util4JAXPParser.child(taskElement,
APPLICATION)));
} else if (Task.SUBFLOW.equals(type)) {
task = new SubflowTask(parent, taskElement.getAttribute(NAME));
((SubflowTask) task).setSubWorkflowProcess(createSubWorkflowProcess(Util4JAXPParser.child(taskElement, SUB_WORKFLOW_PROCESS)));
} else {
return null;
}
task.setSn(UUID.randomUUID().toString());
task.setDisplayName(taskElement.getAttribute(DISPLAY_NAME));
task.setDescription(Util4JAXPParser.elementAsString(taskElement, DESCRIPTION));
String sPriority = taskElement.getAttribute(PRIORITY);
int priority = 0;
if (sPriority != null) {
try {
priority = Integer.parseInt(sPriority);
} catch (Exception e) {
}
}
task.setPriority(priority);
task.setDuration(createDuration(Util4JAXPParser.child(taskElement, DURATION)));
task.setTaskInstanceCreator(taskElement.getAttribute( TASK_INSTANCE_CREATOR));
task.setTaskInstanceRunner(taskElement.getAttribute( TASK_INSTANCE_RUNNER));
task.setTaskInstanceCompletionEvaluator(taskElement.getAttribute( TASK_INSTANCE_COMPLETION_EVALUATOR));
task.setLoopStrategy(taskElement.getAttribute(LOOP_STRATEGY));
loadEventListeners(task.getEventListeners(), Util4JAXPParser.child(taskElement, EVENT_LISTENERS));
loadExtendedAttributes(task.getExtendedAttributes(),
Util4JAXPParser.child(taskElement, EXTENDED_ATTRIBUTES));
return task;
}