All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.bonita.services.Querier Maven / Gradle / Ivy

/**
 * 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.services;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.ow2.bonita.facade.def.InternalActivityDefinition;
import org.ow2.bonita.facade.def.InternalProcessDefinition;
import org.ow2.bonita.facade.def.majorElement.ActivityDefinition.Type;
import org.ow2.bonita.facade.def.majorElement.ProcessDefinition.ProcessState;
import org.ow2.bonita.facade.paging.ActivityInstanceCriterion;
import org.ow2.bonita.facade.paging.ProcessDefinitionCriterion;
import org.ow2.bonita.facade.paging.ProcessInstanceCriterion;
import org.ow2.bonita.facade.runtime.ActivityState;
import org.ow2.bonita.facade.runtime.Category;
import org.ow2.bonita.facade.runtime.Comment;
import org.ow2.bonita.facade.runtime.InstanceState;
import org.ow2.bonita.facade.runtime.TaskInstance;
import org.ow2.bonita.facade.runtime.impl.CategoryImpl;
import org.ow2.bonita.facade.runtime.impl.InternalActivityInstance;
import org.ow2.bonita.facade.runtime.impl.InternalProcessInstance;
import org.ow2.bonita.facade.uuid.ActivityDefinitionUUID;
import org.ow2.bonita.facade.uuid.ActivityInstanceUUID;
import org.ow2.bonita.facade.uuid.CategoryUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.runtime.model.Execution;
import org.ow2.bonita.search.SearchQueryBuilder;

/**
 * @author Pierre Vigneras, Charles Souillard
 */
public interface Querier {

  /*
   * ACTIVITY
   */
  Set getActivityInstances(ProcessInstanceUUID instanceUUID);

  List getActivityInstances(ProcessInstanceUUID instanceUUID, int fromIndex, int pageSize,
      ActivityInstanceCriterion pagingCriterion);

  Set getActivityInstances(ProcessInstanceUUID instanceUUID, String activityName);

  Set getActivityInstances(ProcessInstanceUUID instanceUUID, String activityName,
      String iterationId);

  InternalActivityInstance getActivityInstance(ProcessInstanceUUID instanceUUID, String activityId, String iterationId,
      String activityInstanceId, String loopId);

  InternalActivityInstance getActivityInstance(ActivityInstanceUUID activityInstanceUUID);

  ActivityState getActivityInstanceState(ActivityInstanceUUID activityUUID);

  List getActivityInstancesFromRoot(ProcessInstanceUUID rootInstanceUUID);

  List getActivityInstancesFromRoot(Set rootInstanceUUIDs);

  List getActivityInstancesFromRoot(Set rootInstanceUUIDs,
      ActivityState state);

  Map getLastUpdatedActivityInstanceFromRoot(
      Set rootInstanceUUIDs, boolean considerSystemTaks);

  int getNumberOfActivityInstanceComments(ActivityInstanceUUID activityUUID);

  List getActivityInstanceCommentFeed(ActivityInstanceUUID activityUUID);

  Map getNumberOfActivityInstanceComments(Set activityUUIDs);

  /*
   * INSTANCE
   */
  Set getProcessInstances();

  List getMostRecentProcessInstances(int maxResults, long time);

  List getMostRecentProcessInstances(int maxResults, long time,
      ProcessInstanceCriterion pagingCriterion);

  List getMostRecentParentProcessInstances(int maxResults, long time);

  List getMostRecentParentProcessInstances(int maxResults, long time,
      ProcessInstanceCriterion pagingCriterion);

  List getMostRecentMatchingProcessInstances(Collection instanceUUIDs,
      int maxResults, long time);

  List getMostRecentMatchingProcessInstances(Set instanceUUIDs,
      int maxResults, long time, ProcessInstanceCriterion pagingCriterion);

  List getMostRecentProcessesProcessInstances(
      Collection definitionUUIDs, int maxResults, long time);

  List getMostRecentProcessesProcessInstances(
      Collection definitionUUIDs, int maxResults, long time,
      ProcessInstanceCriterion pagingCriterion);

  List getProcessInstances(int fromIndex, int pageSize);

  List getProcessInstances(int fromIndex, int pageSize, ProcessInstanceCriterion paginCriterion);

  List getProcessInstances(Set definitionUUIDs, int fromIndex,
      int pageSize);

  List getProcessInstances(Set definitionUUIDs, int fromIndex,
      int pageSize, ProcessInstanceCriterion pagingCriterion);

  Set getProcessInstances(ProcessDefinitionUUID processUUID);

  Set getProcessInstances(Set definitionUUIDs);

  Set getProcessInstances(ProcessDefinitionUUID processUUID, InstanceState instanceState);

  Set getProcessInstances(Collection instanceUUIDs);

  List getProcessInstances(Collection instanceUUIDs, int fromIndex,
      int pageSize);

  List getProcessInstancesWithInstanceUUIDs(Set instanceUUIDs,
      int fromIndex, int pageSize, ProcessInstanceCriterion pagingCriterion);

  InternalProcessInstance getProcessInstance(ProcessInstanceUUID instanceUUID);

  Set getProcessInstancesWithTaskState(Collection activityStates);

  Set getProcessInstancesWithTaskState(Collection activityStates,
      Set definitionUUIDs);

  Set getProcessInstancesWithInstanceStates(Collection instanceStates,
      Set visibleProcessUUIDs);

  Set getProcessInstancesWithInstanceStates(Collection instanceStates);

  Set getUserInstances(String userId);

  List getParentUserInstances(String userId, int startingIndex, int pageSize);

  List getParentUserInstances(String userId, int startingIndex, int pageSize,
      ProcessInstanceCriterion pagingCriterion);

  Set getUserInstances(String userId, Set definitionUUIDs);

  List getParentUserInstances(String userId, int startingIndex, int pageSize,
      Set definitionUUIDs);

  List getParentUserInstances(String userId, int startingIndex, int pageSize,
      Set definitionUUIDs, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstances(ProcessDefinitionUUID definitionUUID, int fromIndex,
      int pageSize);

  List getParentProcessInstances(int fromIndex, int pageSize);

  List getParentProcessInstances(int fromIndex, int pageSize,
      ProcessInstanceCriterion paginCriterion);

  List getParentProcessInstances(Set processUUIDs, int fromIndex,
      int pageSize, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesExcept(Set exceptions, int fromIndex,
      int pageSize, ProcessInstanceCriterion pagingCriterion);

  Set getUserParentInstances(String userId, Date minStartDate);

  Set getParentInstancesUUIDs();

  List getParentProcessInstancesWithActiveUser(String userId, int startingIndex, int pageSize,
      Set visibleProcessUUIDs);

  List getParentProcessInstancesWithActiveUser(String userId, int startingIndex, int pageSize,
      Set visibleProcessUUIDs, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithActiveUser(String userId, int startingIndex, int pageSize);

  List getParentProcessInstancesWithActiveUser(String userId, int startingIndex, int pageSize,
      ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
      String userId, Date currentDate, Date atRisk, int startingIndex, int pageSize,
      Set visibleProcessUUIDs);

  List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
      String userId, Date currentDate, Date atRisk, int startingIndex, int pageSize,
      Set visibleProcessUUIDs, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
      String userId, Date currentDate, Date atRisk, int startingIndex, int pageSize);

  List getParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(
      String userId, Date currentDate, Date atRisk, int startingIndex, int pageSize,
      ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithOverdueTasks(String userId, Date currentDate,
      int startingIndex, int pageSize, Set visibleProcessUUIDs);

  List getParentProcessInstancesWithOverdueTasks(String userId, Date currentDate,
      int startingIndex, int pageSize, Set visibleProcessUUIDs,
      ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithOverdueTasks(String userId, Date currentDate,
      int startingIndex, int pageSize);

  List getParentProcessInstancesWithOverdueTasks(String userId, Date currentDate,
      int startingIndex, int pageSize, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithInvolvedUser(String userId, int startingIndex,
      int pageSize, Set visibleProcessUUIDs);

  List getParentProcessInstancesWithInvolvedUser(String userId, int startingIndex,
      int pageSize, Set visibleProcessUUIDs, ProcessInstanceCriterion pagingCriterion);

  List getParentProcessInstancesWithInvolvedUser(String userId, int startingIndex, int pageSize);

  List getParentProcessInstancesWithInvolvedUser(String userId, int startingIndex,
      int pageSize, ProcessInstanceCriterion pagingCriterion);

  Integer getNumberOfParentProcessInstancesWithActiveUser(String userId, Set visibleProcessUUIDs);

  Integer getNumberOfParentProcessInstancesWithActiveUser(String userId);

  Integer getNumberOfParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(String userId,
      Date currentDate, Date atRisk, Set visibleProcessUUIDs);

  Integer getNumberOfParentProcessInstancesWithActiveUserAndActivityInstanceExpectedEndDate(String userId,
      Date currentDate, Date atRisk);

  Integer getNumberOfParentProcessInstancesWithOverdueTasks(String userId, Date currentDate,
      Set visibleProcessUUIDs);

  Integer getNumberOfParentProcessInstancesWithOverdueTasks(String userId, Date currentDate);

  Integer getNumberOfParentProcessInstancesWithInvolvedUser(String userId,
      Set visibleProcessUUIDs);

  Integer getNumberOfParentProcessInstancesWithInvolvedUser(String userId);

  Integer getNumberOfParentProcessInstancesWithStartedBy(String userId, Set visibleProcessUUIDs);

  Integer getNumberOfParentProcessInstancesWithStartedBy(String userId);

  int getNumberOfProcessInstanceComments(ProcessInstanceUUID instanceUUID);

  List getProcessInstanceCommentFeed(ProcessInstanceUUID instanceUUID);

  int getNumberOfComments(ProcessInstanceUUID instanceUUID);

  List getCommentFeed(ProcessInstanceUUID instanceUUID);

  /**
   * Return all my instances except thos given in parameters
   */
  Set getUserInstancesExcept(String userId, Set myCases);

  long getLastProcessInstanceNb(ProcessDefinitionUUID processUUID);

  Execution getExecutionOnActivity(ProcessInstanceUUID instanceUUID, ActivityInstanceUUID activityInstanceUUID);

  Execution getExecutionWithEventUUID(String eventUUID);

  Set getExecutions(ProcessInstanceUUID instanceUUID);

  /*
   * TASK
   */
  Set getTaskInstances(ProcessInstanceUUID instanceUUID);

  Set getTaskInstances(ProcessInstanceUUID instanceUUID, Set taskNames);

  TaskInstance getTaskInstance(ActivityInstanceUUID taskUUID);

  /** return all tasks associated to the given user and having the given state */
  Set getUserTasks(String userId, ActivityState taskState);

  Set getUserTasks(String userId, ActivityState taskState, Set definitionUUIDs);

  Set getUserTasks(String userId, Collection taskStates);

  /** return all tasks associated to the given user and the given instance and having the given state */
  Set getUserInstanceTasks(String userId, ProcessInstanceUUID instanceUUID, ActivityState taskState);

  TaskInstance getOneTask(String userId, ProcessInstanceUUID instanceUUID, ActivityState taskState);

  TaskInstance getOneTask(String userId, ProcessDefinitionUUID processUUID, ActivityState taskState);

  TaskInstance getOneTask(String userId, ActivityState taskState);

  TaskInstance getOneTask(String userId, ActivityState taskState, Set definitionUUIDs);

  /*
   * DEFINITION
   */
  Set getProcesses();

  Set getProcesses(String processId);

  Set getProcesses(Set definitionUUIDs);

  Set getProcesses(Set definitionUUIDs, ProcessState processState);

  Set getProcesses(ProcessState processState);

  Set getProcesses(String processId, ProcessState processState);

  InternalProcessDefinition getProcess(String processId, String version);

  InternalProcessDefinition getProcess(ProcessDefinitionUUID processUUID);

  String getLastProcessVersion(String name);

  InternalProcessDefinition getLastDeployedProcess(String processId, ProcessState processState);

  InternalProcessDefinition getLastDeployedProcess(Set definitionUUIDs, ProcessState processState);

  InternalActivityDefinition getActivity(ActivityDefinitionUUID activityDefinitionUUID);

  /*
   * WEB
   */
  Set getParentInstances();

  Set getAllCategories();

  Set getCategories(Collection names);

  Set getAllCategoriesExcept(Set names);

  Set getCategoriesByUUIDs(Set uuids);

  CategoryImpl getCategoryByUUID(String uuid);

  /*
   * BAM
   */
  int getNumberOfOpenSteps();

  int getNumberOfOpenSteps(int priority);

  int getNumberOfOverdueSteps(Date currentDate);

  int getNumberOfStepsAtRisk(Date currentDate, Date atRisk);

  int getNumberOfFinishedSteps(int priority, Date since);

  int getNumberOfUserOpenSteps(String userId);

  int getNumberOfUserOverdueSteps(String userId, Date currentDate);

  int getNumberOfUserStepsAtRisk(String userId, Date currentDate, Date atRisk);

  int getNumberOfUserFinishedSteps(String userId, int priority, Date since);

  int getNumberOfUserOpenSteps(String userId, int priority);

  List getNumberOfFinishedCasesPerDay(Date since, Date to);

  List getNumberOfExecutingCasesPerDay(Date since, Date to);

  List getNumberOfOpenStepsPerDay(Date since, Date to);

  Set getUserInstances(String userId, Date minStartDate);

  int getNumberOfParentProcessInstances();

  int getNumberOfParentProcessInstances(Set definitionUUIDs);

  int getNumberOfProcessInstances();

  int getNumberOfProcessInstances(Set definitionUUIDs);

  int getNumberOfProcesses();

  List getProcessInstancesDuration(Date since, Date until);

  List getProcessInstancesDuration(ProcessDefinitionUUID processUUID, Date since, Date until);

  List getProcessInstancesDurationFromProcessUUIDs(Set processUUIDs, Date since, Date until);

  List getActivityInstancesExecutionTime(Date since, Date until);

  List getActivityInstancesExecutionTime(ProcessDefinitionUUID processUUID, Date since, Date until);

  List getActivityInstancesExecutionTimeFromProcessUUIDs(Set processUUIDs, Date since,
      Date until);

  List getActivityInstancesExecutionTime(ActivityDefinitionUUID activityUUID, Date since, Date until);

  List getActivityInstancesExecutionTimeFromActivityUUIDs(Set activityUUIDs, Date since,
      Date until);

  List getTaskInstancesWaitingTime(Date since, Date until);

  List getTaskInstancesWaitingTime(ProcessDefinitionUUID processUUID, Date since, Date until);

  List getTaskInstancesWaitingTimeFromProcessUUIDs(Set processUUIDs, Date since, Date until);

  List getTaskInstancesWaitingTime(ActivityDefinitionUUID taskUUID, Date since, Date until);

  List getTaskInstancesWaitingTimeFromTaskUUIDs(Set taskUUIDs, Date since, Date until);

  List getTaskInstancesWaitingTimeOfUser(String username, Date since, Date until);

  List getTaskInstancesWaitingTimeOfUser(String username, ProcessDefinitionUUID processUUID, Date since,
      Date until);

  List getTaskInstancesWaitingTimeOfUserFromProcessUUIDs(String username,
      Set processUUIDs, Date since, Date until);

  List getTaskInstancesWaitingTimeOfUser(String username, ActivityDefinitionUUID taskUUID, Date since, Date until);

  List getTaskInstancesWaitingTimeOfUserFromTaskUUIDs(String username, Set taskUUIDs,
      Date since, Date until);

  List getActivityInstancesDuration(Date since, Date until);

  List getActivityInstancesDuration(ProcessDefinitionUUID processUUID, Date since, Date until);

  List getActivityInstancesDurationFromProcessUUIDs(Set processUUIDs, Date since,
      Date until);

  List getActivityInstancesDuration(ActivityDefinitionUUID activityUUID, Date since, Date until);

  List getActivityInstancesDurationFromActivityUUIDs(Set activityUUIDs, Date since,
      Date until);

  List getActivityInstancesDurationByActivityType(Type activityType, Date since, Date until);

  List getActivityInstancesDurationByActivityType(Type activityType, ProcessDefinitionUUID processUUID,
      Date since, Date until);

  List getActivityInstancesDurationByActivityTypeFromProcessUUIDs(Type activityType,
      Set processUUIDs, Date since, Date until);

  long getNumberOfCreatedProcessInstances(Date since, Date until);

  long getNumberOfCreatedProcessInstances(ProcessDefinitionUUID processUUID, Date since, Date until);

  long getNumberOfCreatedActivityInstances(Date since, Date until);

  long getNumberOfCreatedActivityInstances(ProcessDefinitionUUID processUUID, Date since, Date until);

  long getNumberOfCreatedActivityInstancesFromProcessUUIDs(Set processUUIDs, Date since,
      Date until);

  long getNumberOfCreatedActivityInstances(ActivityDefinitionUUID activityUUID, Date since, Date until);

  long getNumberOfCreatedActivityInstancesFromActivityUUIDs(Set activityUUIDs, Date since,
      Date until);

  long getNumberOfCreatedActivityInstancesByActivityType(Type activityType, Date since, Date until);

  long getNumberOfCreatedActivityInstancesByActivityType(Type activityType, ProcessDefinitionUUID processUUID,
      Date since, Date until);

  long getNumberOfCreatedActivityInstancesByActivityTypeFromProcessUUIDs(Type activityType,
      Set processUUIDs, Date since, Date until);

  List getProcesses(int fromIndex, int pageSize);

  List getProcesses(int fromIndex, int pageSize, ProcessDefinitionCriterion pagingCriterion);

  List getProcesses(Set definitionUUIDs, int fromIndex, int pageSize);

  List getProcesses(Set definitionUUIDs, int fromIndex, int pageSize,
      ProcessDefinitionCriterion pagingCriterion);

  List getProcessesExcept(Set processUUIDs, int fromIndex,
      int pageSize);

  List getProcessesExcept(Set processUUIDs, int fromIndex,
      int pageSize, ProcessDefinitionCriterion pagingCriterion);

  Set getAllProcessDefinitionUUIDsExcept(Set processUUIDs);

  Set getAllProcessDefinitionUUIDs();

  Set getProcessUUIDsFromCategory(String category);

  int search(SearchQueryBuilder query, Class indexClass);

  List search(SearchQueryBuilder query, int firstResult, int maxResults, Class indexClass);

  boolean processExists(ProcessDefinitionUUID definitionUUID);

  Set getProcessTaskUUIDs(ProcessDefinitionUUID definitionUUID);

  boolean containsOtherActiveActivities(final ProcessInstanceUUID instanceUUID, final ActivityInstanceUUID activityUUID);
}