}
public List<BpmTask> findFilteredTasks(ProcessInstanceFilter filter, ProcessToolContext ctx, int offset, int maxResults)
{
/* Initialize query */
BpmTaskFilterQuery taskFilterQuery = new BpmTaskFilterQuery(ctx);
/* Queues filter do not have owner */
if(filter.getFilterOwner() != null)
taskFilterQuery.addUserLoginCondition(filter.getFilterOwner().getLogin());
if(!filter.getQueueTypes().isEmpty())
taskFilterQuery.addQueueTypeCondition(filter.getQueueTypes());
/* Set limit for max results count */
taskFilterQuery.setMaxResultsLimit(maxResults);
taskFilterQuery.setResultsOffset(offset);
/* Add external conditions for process instance filter */
addExternalConditions(taskFilterQuery, filter);
/* BpmTasks */
List<BpmTask> result = taskFilterQuery.getBpmTasks();
return result;
}