Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Copyright (C) 2007 Bull S. A. S.
* Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation
* version 2.1 of the License.
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301, USA.
*
* Modified by Charles Souillard, Matthieu Chaffotte, Nicolas Chabanoles, Elias Ricken de Medeiros
* - BonitaSoft S.A.
**/
package org.ow2.bonita.facade.impl;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.ow2.bonita.facade.QueryRuntimeAPI;
import org.ow2.bonita.facade.def.InternalProcessDefinition;
import org.ow2.bonita.facade.exception.ActivityNotFoundException;
import org.ow2.bonita.facade.exception.DocumentNotFoundException;
import org.ow2.bonita.facade.exception.EventNotFoundException;
import org.ow2.bonita.facade.exception.InstanceNotFoundException;
import org.ow2.bonita.facade.exception.TaskNotFoundException;
import org.ow2.bonita.facade.exception.VariableNotFoundException;
import org.ow2.bonita.facade.identity.impl.GroupImpl;
import org.ow2.bonita.facade.identity.impl.RoleImpl;
import org.ow2.bonita.facade.identity.impl.UserImpl;
import org.ow2.bonita.facade.paging.ActivityInstanceCriterion;
import org.ow2.bonita.facade.paging.ProcessInstanceCriterion;
import org.ow2.bonita.facade.privilege.Rule.RuleType;
import org.ow2.bonita.facade.runtime.ActivityInstance;
import org.ow2.bonita.facade.runtime.ActivityState;
import org.ow2.bonita.facade.runtime.AttachmentInstance;
import org.ow2.bonita.facade.runtime.CatchingEvent;
import org.ow2.bonita.facade.runtime.CatchingEvent.Position;
import org.ow2.bonita.facade.runtime.CatchingEvent.Type;
import org.ow2.bonita.facade.runtime.Comment;
import org.ow2.bonita.facade.runtime.Document;
import org.ow2.bonita.facade.runtime.InstanceState;
import org.ow2.bonita.facade.runtime.ProcessInstance;
import org.ow2.bonita.facade.runtime.TaskInstance;
import org.ow2.bonita.facade.runtime.VariableUpdate;
import org.ow2.bonita.facade.runtime.impl.ActivityInstanceImpl;
import org.ow2.bonita.facade.runtime.impl.AttachmentInstanceImpl;
import org.ow2.bonita.facade.runtime.impl.CaseImpl;
import org.ow2.bonita.facade.runtime.impl.CatchingEventImpl;
import org.ow2.bonita.facade.runtime.impl.InternalActivityInstance;
import org.ow2.bonita.facade.runtime.impl.InternalProcessInstance;
import org.ow2.bonita.facade.runtime.impl.ProcessInstanceImpl;
import org.ow2.bonita.facade.uuid.ActivityInstanceUUID;
import org.ow2.bonita.facade.uuid.CatchingEventUUID;
import org.ow2.bonita.facade.uuid.DocumentUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.light.LightActivityInstance;
import org.ow2.bonita.light.LightProcessDefinition;
import org.ow2.bonita.light.LightProcessInstance;
import org.ow2.bonita.light.LightTaskInstance;
import org.ow2.bonita.light.impl.LightActivityInstanceImpl;
import org.ow2.bonita.light.impl.LightProcessDefinitionImpl;
import org.ow2.bonita.light.impl.LightProcessInstanceImpl;
import org.ow2.bonita.runtime.event.EventConstants;
import org.ow2.bonita.runtime.event.Job;
import org.ow2.bonita.runtime.model.Execution;
import org.ow2.bonita.search.DocumentResult;
import org.ow2.bonita.search.DocumentSearchBuilder;
import org.ow2.bonita.search.SearchQueryBuilder;
import org.ow2.bonita.search.index.Index;
import org.ow2.bonita.services.DocumentationManager;
import org.ow2.bonita.services.EventService;
import org.ow2.bonita.services.Querier;
import org.ow2.bonita.util.BonitaRuntimeException;
import org.ow2.bonita.util.CopyTool;
import org.ow2.bonita.util.DateUtil;
import org.ow2.bonita.util.DocumentService;
import org.ow2.bonita.util.EnvTool;
import org.ow2.bonita.util.ExceptionManager;
import org.ow2.bonita.util.Misc;
import org.ow2.bonita.util.TransientData;
import org.xml.sax.SAXException;
/**
* @author Pierre Vigneras
*/
public class QueryRuntimeAPIImpl implements QueryRuntimeAPI {
private final String queryList;
protected QueryRuntimeAPIImpl(final String queryList) {
this.queryList = queryList;
}
private String getQueryList() {
return queryList;
}
@Override
public int getNumberOfParentProcessInstances() {
final boolean access = EnvTool.isRestrictedApplicationAcces();
int count = 0;
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null) {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances(visibleProcessUUIDs);
}
} else {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances();
}
return count;
}
@Override
public int getNumberOfParentProcessInstances(final Set processDefinitionUUIDs) {
if (processDefinitionUUIDs == null || processDefinitionUUIDs.isEmpty()) {
return 0;
}
int count = 0;
final boolean access = EnvTool.isRestrictedApplicationAcces();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processDefinitionUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances(visibleProcessUUIDs);
}
}
} else {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances(processDefinitionUUIDs);
}
return count;
}
@Override
public int getNumberOfParentProcessInstancesExcept(final Set exceptions) {
if (exceptions == null || exceptions.isEmpty()) {
return getNumberOfParentProcessInstances();
}
int count = 0;
final boolean access = EnvTool.isRestrictedApplicationAcces();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.removeAll(exceptions);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances(visibleProcessUUIDs);
}
}
} else {
final Set visibleProcessUUIDs = EnvTool.getAllQueriers(getQueryList())
.getAllProcessDefinitionUUIDsExcept(exceptions);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstances(visibleProcessUUIDs);
}
}
return count;
}
@Override
public int getNumberOfProcessInstances() {
final boolean access = EnvTool.isRestrictedApplicationAcces();
int count = 0;
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfProcessInstances(visibleProcessUUIDs);
}
} else {
count = EnvTool.getAllQueriers(getQueryList()).getNumberOfProcessInstances();
}
return count;
}
@Override
public ProcessInstance getProcessInstance(final ProcessInstanceUUID instanceUUID) throws InstanceNotFoundException {
final InternalProcessInstance instance = getInternalProcessInstanceWithAttachments(instanceUUID);
if (instance == null) {
throw new InstanceNotFoundException("bai_QRAPII_1", instanceUUID);
}
return new ProcessInstanceImpl(instance);
}
@Override
public LightProcessInstance getLightProcessInstance(final ProcessInstanceUUID instanceUUID)
throws InstanceNotFoundException {
final ProcessInstance result = getInternalProcessInstanceWithoutAttachements(instanceUUID);
if (result == null) {
throw new InstanceNotFoundException("bai_QRAPII_1", instanceUUID);
}
return new LightProcessInstanceImpl(result);
}
private InternalProcessInstance getInternalProcessInstanceWithAttachments(final ProcessInstanceUUID instanceUUID)
throws InstanceNotFoundException {
final InternalProcessInstance internalProcessInstance = getInternalProcessInstanceWithoutAttachements(instanceUUID);
if (internalProcessInstance != null && internalProcessInstance.getNbOfAttachments() > 0) {
bindAttachementsToInternalProcessInstance(internalProcessInstance);
}
return internalProcessInstance;
}
private void bindAttachementsToInternalProcessInstance(final InternalProcessInstance internalProcessInstance) {
if (internalProcessInstance != null) {
final int nbOfAttachments = internalProcessInstance.getNbOfAttachments();
if (nbOfAttachments > 0) {
final DocumentationManager manager = EnvTool.getDocumentationManager();
final List allAttachmentVersions = DocumentService.getAllAttachmentVersions(manager,
internalProcessInstance.getProcessInstanceUUID());
for (final AttachmentInstance attachmentInstance : allAttachmentVersions) {
internalProcessInstance.addAttachment(attachmentInstance);
}
}
}
}
private InternalProcessInstance getInternalProcessInstanceWithoutAttachements(final ProcessInstanceUUID instanceUUID) {
FacadeUtil.checkArgsNotNull(instanceUUID);
final Querier querier = EnvTool.getAllQueriers(getQueryList());
return querier.getProcessInstance(instanceUUID);
}
@Override
public Set getProcessInstances() {
final Set processes = getInternalProcessInstancesWithAttachements();
final Set result = new HashSet();
for (final ProcessInstance record : processes) {
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getLightProcessInstances() {
final Set processes = getInternalProcessInstancesWithoutAttachements();
final Set result = new HashSet();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
private Set getInternalProcessInstancesWithoutAttachements() {
final boolean access = EnvTool.isRestrictedApplicationAcces();
Set processes = new HashSet();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances(visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances();
}
return processes;
}
private Set getInternalProcessInstancesWithAttachements() {
final Set processes = getInternalProcessInstancesWithoutAttachements();
bindAttachementsToInternalProcessInstances(processes);
return processes;
}
private void bindAttachementsToInternalProcessInstances(final Set processes) {
for (final InternalProcessInstance internalProcessInstance : processes) {
bindAttachementsToInternalProcessInstance(internalProcessInstance);
}
}
@Override
public List getLightProcessInstances(final int fromIndex, final int pageSize) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances(visibleProcessUUIDs, fromIndex,
pageSize);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances(fromIndex, pageSize);
}
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightProcessInstances(final int fromIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances(visibleProcessUUIDs, fromIndex,
pageSize, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstances(fromIndex, pageSize, pagingCriterion);
}
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstances(final int fromIndex, final int pageSize) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
final List records = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstances(
fromIndex, pageSize);
for (final ProcessInstance record : records) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstances(final Set processUUIDs,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
Misc.checkArgsNotNull(processUUIDs);
if (processUUIDs.isEmpty()) {
return Collections.emptyList();
}
final List processes = getParentProcessInstances(processUUIDs, fromIndex, pageSize,
pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
private List getParentProcessInstances(final Set processUUIDs,
final int startingIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstances(visibleProcessUUIDs,
startingIndex, pageSize, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstances(processUUIDs, startingIndex,
pageSize, pagingCriterion);
}
return processes;
}
@Override
public List getLightParentProcessInstancesExcept(final Set exceptions,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
if (exceptions == null || exceptions.isEmpty()) {
return getLightParentProcessInstances(fromIndex, pageSize, pagingCriterion);
}
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.removeAll(exceptions);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstances(visibleProcessUUIDs, fromIndex,
pageSize, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesExcept(exceptions, fromIndex,
pageSize, pagingCriterion);
}
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstances(final int fromIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
final List records = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstances(
fromIndex, pageSize, pagingCriterion);
for (final ProcessInstance record : records) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getUserInstances() {
final Set processes = getUserProcessInstances();
// bind attachements from document service
bindAttachementsToInternalProcessInstances(processes);
final Set result = new HashSet();
for (final ProcessInstance record : processes) {
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getLightUserInstances() {
final Set processes = getUserProcessInstances();
final Set result = new HashSet();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentUserInstances(final int startingIndex, final int pageSize) {
final List processes = getUserParentProcessInstances(startingIndex, pageSize);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentUserInstances(final int fromIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final List processes = getUserParentProcessInstances(fromIndex, pageSize, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithActiveUser(final String userId,
final int fromIndex, final int pageSize) {
final List processes = getParentProcessInstancesWithActiveUser(userId, fromIndex, pageSize);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithActiveUser(final String userId,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final List processes = getParentProcessInstancesWithActiveUser(userId, fromIndex,
pageSize, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int fromIndex, final int pageSize) {
final List processes = getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
userId, remainingDays, fromIndex, pageSize);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int fromIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final List processes = getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
userId, remainingDays, fromIndex, pageSize, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithOverdueTasks(final String userId,
final int fromIndex, final int pageSize) {
final List processes = getParentProcessInstancesWithOverdueTasks(userId, fromIndex,
pageSize, ProcessInstanceCriterion.DEFAULT);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithOverdueTasks(final String userId,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final List processes = getParentProcessInstancesWithOverdueTasks(userId, fromIndex,
pageSize, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
private List getParentProcessInstancesWithOverdueTasks(final String userId,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithOverdueTasks(userId,
currentDate, fromIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithOverdueTasks(userId, currentDate,
fromIndex, pageSize, pagingCriterion);
}
return processes;
}
private List getParentProcessInstancesWithOverdueTasks(final String userId,
final int fromIndex, final int pageSize, final Set processUUIDs,
final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithOverdueTasks(userId,
currentDate, fromIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithOverdueTasks(userId, currentDate,
fromIndex, pageSize, processUUIDs, pagingCriterion);
}
return processes;
}
private List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int startingIndex, final int pageSize) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize);
}
return processes;
}
private List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int startingIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, pagingCriterion);
}
return processes;
}
private List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int startingIndex, final int pageSize,
final Set processUUIDs) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, processUUIDs);
}
return processes;
}
private List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
final String userId, final int remainingDays, final int startingIndex, final int pageSize,
final Set processUUIDs, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
final Date currentDate = new Date();
final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate, atRisk,
startingIndex, pageSize, processUUIDs, pagingCriterion);
}
return processes;
}
@Override
public List getLightParentProcessInstancesWithInvolvedUser(final String userId,
final int fromIndex, final int pageSize) {
final List processes = getParentProcessInstancesWithInvolvedUser(userId, fromIndex,
pageSize);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithInvolvedUser(final String userId,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final List processes = getParentProcessInstancesWithInvolvedUser(userId, fromIndex,
pageSize, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : processes) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithInvolvedUser(final String userId,
final int fromIndex, final int pageSize, final Set processUUIDs) {
if (processUUIDs == null || processUUIDs.isEmpty()) {
return Collections.emptyList();
}
final List internalProcesses = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithInvolvedUser(userId, fromIndex, pageSize, processUUIDs);
final List result = new ArrayList();
for (final ProcessInstance record : internalProcesses) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightParentProcessInstancesWithInvolvedUser(final String userId,
final int fromIndex, final int pageSize, final Set processUUIDs,
final ProcessInstanceCriterion pagingCriterion) {
if (processUUIDs == null || processUUIDs.isEmpty()) {
return Collections.emptyList();
}
final List internalProcesses = EnvTool.getAllQueriers(getQueryList())
.getParentProcessInstancesWithInvolvedUser(userId, fromIndex, pageSize, processUUIDs, pagingCriterion);
final List result = new ArrayList();
for (final ProcessInstance record : internalProcesses) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public Integer getNumberOfParentProcessInstancesWithActiveUser(final String userId) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithActiveUser(userId,
visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithActiveUser(userId);
}
}
@Override
public Integer getNumberOfParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(final String userId,
final int remainingDays) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
final Date currentDate = new Date();
final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList())
.getNumberOfParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate,
atRisk, visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList())
.getNumberOfParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(userId, currentDate,
atRisk);
}
}
@Override
public Integer getNumberOfParentProcessInstancesWithOverdueTasks(final String userId) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
final Date currentDate = new Date();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithOverdueTasks(userId,
currentDate, visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithOverdueTasks(userId,
currentDate);
}
}
@Override
public Integer getNumberOfParentProcessInstancesWithInvolvedUser(final String userId) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithInvolvedUser(userId,
visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithInvolvedUser(userId);
}
}
@Override
public Integer getNumberOfParentProcessInstancesWithInvolvedUserAndCategory(final String userId, final String category) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
final Set targetedProcesses = EnvTool.getAllQueriers(getQueryList())
.getProcessUUIDsFromCategory(category);
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
visibleProcessUUIDs.retainAll(targetedProcesses);
if (!visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithInvolvedUser(userId,
visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithInvolvedUser(userId,
targetedProcesses);
}
}
@Override
public Integer getNumberOfParentProcessInstancesWithStartedBy(final String userId) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithStartedBy(userId,
visibleProcessUUIDs);
}
}
return 0;
} else {
return EnvTool.getAllQueriers(getQueryList()).getNumberOfParentProcessInstancesWithStartedBy(userId);
}
}
private List getParentProcessInstancesWithActiveUser(final String userId,
final int startingIndex, final int pageSize) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId,
startingIndex, pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId, startingIndex,
pageSize);
}
return processes;
}
private List getParentProcessInstancesWithActiveUser(final String userId,
final int startingIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId,
startingIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId, startingIndex,
pageSize, pagingCriterion);
}
return processes;
}
private List getParentProcessInstancesWithActiveUser(final String userId,
final int startingIndex, final int pageSize, final Set processUUIDs) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId,
startingIndex, pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId, startingIndex,
pageSize, processUUIDs);
}
return processes;
}
private List getParentProcessInstancesWithActiveUser(final String userId,
final int startingIndex, final int pageSize, final Set processUUIDs,
final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null || visibleProcessUUIDs.isEmpty()) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId,
startingIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithActiveUser(userId, startingIndex,
pageSize, processUUIDs, pagingCriterion);
}
return processes;
}
private List getParentProcessInstancesWithInvolvedUser(final String userId,
final int startingIndex, final int pageSize) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithInvolvedUser(userId,
startingIndex, pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithInvolvedUser(userId,
startingIndex, pageSize);
}
return processes;
}
private List getParentProcessInstancesWithInvolvedUser(final String userId,
final int startingIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithInvolvedUser(userId,
startingIndex, pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentProcessInstancesWithInvolvedUser(userId,
startingIndex, pageSize, pagingCriterion);
}
return processes;
}
private List getUserParentProcessInstances(final int startingIndex, final int pageSize) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize);
}
return processes;
}
private List getUserParentProcessInstances(final int startingIndex, final int pageSize,
final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, pagingCriterion);
}
return processes;
}
private List getUserParentProcessInstances(final int startingIndex, final int pageSize,
final Set processUUIDs) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, processUUIDs);
}
return processes;
}
private List getUserParentProcessInstances(final int startingIndex, final int pageSize,
final Set processUUIDs, final ProcessInstanceCriterion pagingCriterion) {
final boolean access = EnvTool.isRestrictedApplicationAcces();
List processes = new ArrayList();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs == null) {
visibleProcessUUIDs = new HashSet();
}
visibleProcessUUIDs.retainAll(processUUIDs);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, visibleProcessUUIDs, pagingCriterion);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getParentUserInstances(EnvTool.getUserId(), startingIndex,
pageSize, processUUIDs, pagingCriterion);
}
return processes;
}
private Set getUserProcessInstances() {
final boolean access = EnvTool.isRestrictedApplicationAcces();
Set processes = new HashSet();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getUserInstances(EnvTool.getUserId(), visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getUserInstances(EnvTool.getUserId());
}
return processes;
}
@Override
public Set getProcessInstances(final Collection instanceUUIDs) {
final Set result = new HashSet();
if (instanceUUIDs == null || instanceUUIDs.isEmpty()) {
return result;
}
for (final InternalProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(
instanceUUIDs)) {
bindAttachementsToInternalProcessInstance(record);
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getLightProcessInstances(final Collection instanceUUIDs) {
final Set result = new HashSet();
if (instanceUUIDs == null || instanceUUIDs.isEmpty()) {
return result;
}
for (final ProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(instanceUUIDs)) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightProcessInstances(final Collection instanceUUIDs,
final int fromIndex, final int pageSize) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
if (instanceUUIDs == null || instanceUUIDs.isEmpty()) {
return result;
}
for (final ProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(instanceUUIDs,
fromIndex, pageSize)) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public List getLightProcessInstances(final Set instanceUUIDs,
final int fromIndex, final int pageSize, final ProcessInstanceCriterion pagingCriterion) {
final List result = new ArrayList();
if (pageSize <= 0) {
return result;
}
if (instanceUUIDs == null || instanceUUIDs.isEmpty()) {
return result;
}
for (final ProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstancesWithInstanceUUIDs(
instanceUUIDs, fromIndex, pageSize, pagingCriterion)) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getProcessInstancesWithTaskState(final Collection activityStates) {
final Set result = new HashSet();
if (activityStates == null || activityStates.isEmpty()) {
return result;
}
final boolean access = EnvTool.isRestrictedApplicationAcces();
Set processes = new HashSet();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstancesWithTaskState(activityStates,
visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstancesWithTaskState(activityStates);
}
for (final InternalProcessInstance record : processes) {
bindAttachementsToInternalProcessInstance(record);
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getProcessInstancesWithInstanceStates(final Collection instanceStates) {
Misc.checkArgsNotNull(instanceStates);
if (instanceStates.isEmpty()) {
throw new IllegalArgumentException(ExceptionManager.getInstance().getMessage("bai_QRAPII_15"));
}
final Set result = new HashSet();
final boolean access = EnvTool.isRestrictedApplicationAcces();
Set processes = new HashSet();
if (access) {
final String applicationName = EnvTool.getApplicationAccessName();
if (applicationName != null) {
final Set visibleProcessUUIDs = FacadeUtil.getAllowedProcessUUIDsFor(applicationName,
RuleType.PROCESS_READ);
if (visibleProcessUUIDs != null && !visibleProcessUUIDs.isEmpty()) {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstancesWithInstanceStates(instanceStates,
visibleProcessUUIDs);
}
}
} else {
processes = EnvTool.getAllQueriers(getQueryList()).getProcessInstancesWithInstanceStates(instanceStates);
}
for (final InternalProcessInstance record : processes) {
bindAttachementsToInternalProcessInstance(record);
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getProcessInstances(final ProcessDefinitionUUID processUUID) {
final Set result = new HashSet();
for (final InternalProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(processUUID)) {
bindAttachementsToInternalProcessInstance(record);
result.add(new ProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getLightProcessInstances(final ProcessDefinitionUUID processUUID) {
final Set result = new HashSet();
for (final ProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(processUUID)) {
result.add(new LightProcessInstanceImpl(record));
}
return result;
}
@Override
public Set getLightWeightProcessInstances(final Set processUUIDs) {
final Set result = new HashSet