org.activiti.engine.runtime.ProcessInstanceQuery Maven / Gradle / Ivy
The newest version!
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.engine.runtime;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.query.Query;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
* Allows programmatic querying of {@link ProcessInstance}s.
*
* @author Joram Barrez
* @author Tijs Rademakers
* @author Frederik Heremans
* @author Falko Menge
*/
public interface ProcessInstanceQuery extends Query {
/** Select the process instance with the given id */
ProcessInstanceQuery processInstanceId(String processInstanceId);
/** Select process instances whose id is in the given set of ids */
ProcessInstanceQuery processInstanceIds(Set processInstanceIds);
/** Select process instances with the given business key */
ProcessInstanceQuery processInstanceBusinessKey(String processInstanceBusinessKey);
/** Select process instance with the given business key, unique for the given process definition */
ProcessInstanceQuery processInstanceBusinessKey(String processInstanceBusinessKey, String processDefinitionKey);
/**
* Only select process instances that have the given tenant id.
*/
ProcessInstanceQuery processInstanceTenantId(String tenantId);
/**
* Only select process instances with a tenant id like the given one.
*/
ProcessInstanceQuery processInstanceTenantIdLike(String tenantIdLike);
/**
* Only select process instances that do not have a tenant id.
*/
ProcessInstanceQuery processInstanceWithoutTenantId();
/** Select process instances whose process definition name is processDefinitionName*/
ProcessInstanceQuery processDefinitionName(String processDefinitionName);
/**
* Select the process instances which are defined by a process definition with
* the given key.
*/
ProcessInstanceQuery processDefinitionKey(String processDefinitionKey);
/**
* Select the process instances which are defined by process definitions with
* the given keys.
*/
ProcessInstanceQuery processDefinitionKeys(Set processDefinitionKeys);
/**
* Select the process instances which are defined by a process definition
* with the given id.
*/
ProcessInstanceQuery processDefinitionId(String processDefinitionId);
/**
* Select the process instances which are defined by process definitions
* with the given ids.
*/
ProcessInstanceQuery processDefinitionIds(Set processDefinitionIds);
/**
* Select the process instances which are defined by a deployment
* with the given id.
*/
ProcessInstanceQuery deploymentId(String deploymentId);
/**
* Select the process instances which are defined by one of the given deployment ids
*/
ProcessInstanceQuery deploymentIdIn(List deploymentIds);
/**
* Select the process instances which are a sub process instance of the given
* super process instance.
*/
ProcessInstanceQuery superProcessInstanceId(String superProcessInstanceId);
/**
* Select the process instance that have as sub process instance the given
* process instance. Note that there will always be maximum only one
* such process instance that can be the result of this query.
*/
ProcessInstanceQuery subProcessInstanceId(String subProcessInstanceId);
/**
* Exclude sub processes from the query result;
*/
ProcessInstanceQuery excludeSubprocesses(boolean excludeSubprocesses);
/**
* Select the process instances with which the user with the given id is involved.
*/
ProcessInstanceQuery involvedUser(String userId);
/**
* Only select process instances which have a global variable with the given value. The type
* of variable is determined based on the value, using types configured in
* {@link ProcessEngineConfiguration#getVariableTypes()}.
* Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
* @param name name of the variable, cannot be null.
*/
ProcessInstanceQuery variableValueEquals(String name, Object value);
/**
* Only select process instances which have at least one global variable with the given value. The type
* of variable is determined based on the value, using types configured in
* {@link ProcessEngineConfiguration#getVariableTypes()}.
* Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
*/
ProcessInstanceQuery variableValueEquals(Object value);
/**
* Only select process instances which have a local string variable with the given value,
* case insensitive.
*
* This method only works if your database has encoding/collation that supports case-sensitive
* queries. For example, use "collate UTF-8" on MySQL and for MSSQL, select one of the case-sensitive Collations
* available (MSDN Server Collation Reference).
*
* @param name name of the variable, cannot be null.
* @param value value of the variable, cannot be null.
*/
ProcessInstanceQuery variableValueEqualsIgnoreCase(String name, String value);
/**
* Only select process instances which have a global variable with the given name, but
* with a different value than the passed value.
* Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
* @param name name of the variable, cannot be null.
*/
ProcessInstanceQuery variableValueNotEquals(String name, Object value);
/**
* Only select process instances which have a local string variable which is not the given value,
* case insensitive.
*
* This method only works if your database has encoding/collation that supports case-sensitive
* queries. For example, use "collate UTF-8" on MySQL and for MSSQL, select one of the case-sensitive Collations
* available (MSDN Server Collation Reference).
*
* @param name name of the variable, cannot be null.
* @param value value of the variable, cannot be null.
*/
ProcessInstanceQuery variableValueNotEqualsIgnoreCase(String name, String value);
/**
* Only select process instances which have a variable value greater than the passed value.
* Booleans, Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
* @param name variable name, cannot be null.
* @param value variable value, cannot be null.
*/
ProcessInstanceQuery variableValueGreaterThan(String name, Object value);
/**
* Only select process instances which have a global variable value greater than or equal to
* the passed value. Booleans, Byte-arrays and {@link Serializable} objects (which
* are not primitive type wrappers) are not supported.
* @param name variable name, cannot be null.
* @param value variable value, cannot be null.
*/
ProcessInstanceQuery variableValueGreaterThanOrEqual(String name, Object value);
/**
* Only select process instances which have a global variable value less than the passed value.
* Booleans, Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
* @param name variable name, cannot be null.
* @param value variable value, cannot be null.
*/
ProcessInstanceQuery variableValueLessThan(String name, Object value);
/**
* Only select process instances which have a global variable value less than or equal to the passed value.
* Booleans, Byte-arrays and {@link Serializable} objects (which are not primitive type wrappers)
* are not supported.
* @param name variable name, cannot be null.
* @param value variable value, cannot be null.
*/
ProcessInstanceQuery variableValueLessThanOrEqual(String name, Object value);
/**
* Only select process instances which have a global variable value like the given value.
* This be used on string variables only.
* @param name variable name, cannot be null.
* @param value variable value, cannot be null. The string can include the
* wildcard character '%' to express like-strategy:
* starts with (string%), ends with (%string) or contains (%string%).
*/
ProcessInstanceQuery variableValueLike(String name, String value);
/**
* Only select process instances which are suspended, either because the
* process instance itself is suspended or because the corresponding process
* definition is suspended
*/
ProcessInstanceQuery suspended();
/**
* Only select process instances which are active, which means that
* neither the process instance nor the corresponding process definition
* are suspended.
*/
ProcessInstanceQuery active();
/**
* Only select process instances with the given name.
*/
ProcessInstanceQuery processInstanceName(String name);
/**
* Only select process instances with a name like the given value.
*/
ProcessInstanceQuery processInstanceNameLike(String nameLike);
/**
* Only select process instances with a name like the given value, ignoring upper/lower case.
*/
ProcessInstanceQuery processInstanceNameLikeIgnoreCase(String nameLikeIgnoreCase);
/**
* Include process variables in the process query result
*/
ProcessInstanceQuery includeProcessVariables();
/**
* Begin an OR statement. Make sure you invoke the endOr method at the end of your OR statement.
* Only one OR statement is allowed, for the second call to this method an exception will be thrown.
*/
ProcessInstanceQuery or();
/**
* End an OR statement. Only one OR statement is allowed, for the second call to this method an exception will be thrown.
*/
ProcessInstanceQuery endOr();
//ordering /////////////////////////////////////////////////////////////////
/** Order by id (needs to be followed by {@link #asc()} or {@link #desc()}). */
ProcessInstanceQuery orderByProcessInstanceId();
/** Order by process definition key (needs to be followed by {@link #asc()} or {@link #desc()}). */
ProcessInstanceQuery orderByProcessDefinitionKey();
/** Order by process definition id (needs to be followed by {@link #asc()} or {@link #desc()}). */
ProcessInstanceQuery orderByProcessDefinitionId();
/** Order by tenant id (needs to be followed by {@link #asc()} or {@link #desc()}). */
ProcessInstanceQuery orderByTenantId();
}