@Override
public List<InternalProcessInstance> getParentProcessInstancesExcept(final Set<ProcessDefinitionUUID> exceptions,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
if (exceptions == null || exceptions.isEmpty()) {
return getParentProcessInstances(fromIndex, pageSize, pagingCriterion);
}
final List<InternalProcessInstance> processInsts = new ArrayList<InternalProcessInstance>();
if (queriers.size() == 1) {
final Querier querier = queriers.get(0);
processInsts.addAll(querier.getParentProcessInstancesExcept(exceptions, fromIndex, pageSize, pagingCriterion));
return processInsts;
}
for (final Querier querier : queriers) {
processInsts.addAll(querier.getParentProcessInstancesExcept(exceptions, fromIndex, pageSize, pagingCriterion));
}
Collections.sort(processInsts, new InternalProcessInstanceComparator(pagingCriterion));
return Misc.subList(InternalProcessInstance.class, processInsts, 0, pageSize);
}