public ProcessInstanceList getProcessInstances(List<Integer> status, String initiator, String processName, Integer page, Integer pageSize, String sort, boolean sortOrder) {
if (sort == null || sort.isEmpty()) {
sort = "ProcessInstanceId";
}
if (status == null || status.isEmpty()) {
status = new ArrayList<Integer>();
status.add(ProcessInstance.STATE_ACTIVE);
}
Collection<ProcessInstanceDesc> instances = null;
if (processName != null && !processName.isEmpty()) {
logger.debug("About to search for process instances with process name '{}' with page {} and page size {}", processName, page, pageSize);
instances = runtimeDataService.getProcessInstancesByProcessName(status, processName, nullEmpty(initiator), buildQueryContext(page, pageSize, sort, sortOrder));
logger.debug("Found {} process instances for process name '{}', statuses '{}'", instances.size(), processName, status);
} else {
logger.debug("About to search for process instances with page {} and page size {}", page, pageSize);
instances = runtimeDataService.getProcessInstances(status, nullEmpty(initiator), buildQueryContext(page, pageSize, sort, sortOrder));
logger.debug("Found {} process instances , statuses '{}'", instances.size(), status);
}
ProcessInstanceList processInstanceList = convertToProcessInstanceList(instances);
logger.debug("Returning result of process instance search: {}", processInstanceList);
return processInstanceList;
}