/**
* Copyright 1996-2014 FoxBPM Co.,Ltd.
*
* 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.
*
* @author ych
* @author kenshin
*/
package org.foxbpm.engine.runtime;
import java.util.Date;
import org.foxbpm.engine.query.Query;
/**
* 流程实例查询
* @author kenshin
*
*/
public interface ProcessInstanceQuery extends Query<ProcessInstanceQuery, ProcessInstance>{
/**
* 根据流程实例号查询
* @param processInstanceId
* @return
*/
ProcessInstanceQuery processInstanceId(String processInstanceId);
/**
* 根据业务关联键查询
* @param processInstanceBusinessKey
* @return
*/
ProcessInstanceQuery processInstanceBusinessKey(String processInstanceBusinessKey);
/**
* 根据业务关联键查询
* @param processInstanceBusinessKey
* @return
*/
ProcessInstanceQuery processInstanceBusinessKeyLike(String processInstanceBusinessKey);
/**
* 根据流程定义key查询
* @param processDefinitionKey
* @return
*/
ProcessInstanceQuery processDefinitionKey(String processDefinitionKey);
/**
* 根据流程定义编号查询
* @param processDefinitionId
* @return
*/
ProcessInstanceQuery processDefinitionId(String processDefinitionId);
/**
* 流程发起人
* @param initiator
* @return
*/
ProcessInstanceQuery initiator(String initiator);
/**
* 流程发起人like查询
* @param initiatorLike
* @return
*/
ProcessInstanceQuery initiatorLike(String initiatorLike);
/**
* 已经结束的流程实例
* @return
*/
ProcessInstanceQuery isEnd();
/**
* 未结束的流程实例
* @return
*/
ProcessInstanceQuery notEnd();
/**
* 根据任务主题查询
* @param subject
* @return
*/
ProcessInstanceQuery subject(String subject);
/**
* 根据任务主题like查询
* @param subjectLike
* @return
*/
ProcessInstanceQuery subjectLike(String subjectLike);
/**
* 任务主题发起人共用一个查询条件
*
*/
ProcessInstanceQuery subjectUnionInitiator();
/**
* 流程开始时间等于
* @param startTime
* @return
*/
ProcessInstanceQuery startTimeOn(Date startTime);
/**
* 流程开始时间大于
* @param startTimeBefore
* @return
*/
ProcessInstanceQuery startTimeBefore(Date startTimeBefore);
/**
* 流程开始时间小于
* @param startTimeAfter
* @return
*/
ProcessInstanceQuery startTimeAfter(Date startTimeAfter);
/**
* 流程结束时间等于
* @param startTime
* @return
*/
ProcessInstanceQuery endTimeOn(Date startTime);
/**
* 流程结束时间大于
* @param startTimeBefore
* @return
*/
ProcessInstanceQuery endTimeBefore(Date startTimeBefore);
/**
* 流程结束时间小于
* @param startTimeAfter
* @return
*/
ProcessInstanceQuery endTimeAfter(Date startTimeAfter);
/**
* 根据参与人查询,流程追踪时
* @param taskParticipants
* @return
*/
ProcessInstanceQuery taskParticipants(String taskParticipants);
/**
* 根据流程状态查询
* @return
*/
ProcessInstanceQuery processInstanceStatus(String running);
/**
* 根据流程定义名称查询
* @param definitionName
* @return
*/
ProcessInstanceQuery processDefinitionName(String definitionName);
/**
* 根据流程定义名称like查询
* @param definitionNameLike
* @return
*/
ProcessInstanceQuery processDefinitionNameLike(String definitionNameLike);
/**
* 根据流程实例编号排序
* @return
*/
ProcessInstanceQuery orderByProcessInstanceId();
/**
* 根据流程实例开始时间排序
* @return
*/
ProcessInstanceQuery orderByStartTime();
/**
* 根据流程定义key排序
* @return
*/
ProcessInstanceQuery orderByProcessDefinitionKey();
/**
* 根据流程定义编号排序
* @return
*/
ProcessInstanceQuery orderByProcessDefinitionId();
/**
* 根据上次更新时间排序
* @return
*/
ProcessInstanceQuery orderByUpdateTime();
}