@PreAuthorize("hasRole('TASK_LIST')")
@SuppressWarnings("unchecked")
public <T extends AbstractTaskTO> List<T> list(final TaskType taskType,
final int page, final int size, final List<OrderByClause> orderByClauses) {
TaskUtil taskUtil = TaskUtil.getInstance(taskType);
List<Task> tasks = taskDAO.findAll(page, size, orderByClauses, taskUtil.taskClass());
List<T> taskTOs = new ArrayList<T>(tasks.size());
for (Task task : tasks) {
taskTOs.add((T) binder.getTaskTO(task, taskUtil));
}