/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* 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.kie.server.client;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.kie.server.api.model.instance.ProcessInstance;
import org.kie.server.api.model.instance.TaskAttachment;
import org.kie.server.api.model.instance.TaskComment;
import org.kie.server.api.model.instance.TaskEventInstance;
import org.kie.server.api.model.instance.TaskInstance;
import org.kie.server.api.model.instance.TaskSummary;
import org.kie.server.client.jms.ResponseHandler;
public interface UserTaskServicesClient {
// task operations
void activateTask(String containerId, Long taskId, String userId);
void claimTask(String containerId, Long taskId, String userId);
void completeTask(String containerId, Long taskId, String userId, Map<String, Object> params);
void completeAutoProgress(String containerId, Long taskId, String userId, Map<String, Object> params);
void delegateTask(String containerId, Long taskId, String userId, String targetUserId);
void exitTask(String containerId, Long taskId, String userId);
void failTask(String containerId, Long taskId, String userId, Map<String, Object> params);
void forwardTask(String containerId, Long taskId, String userId, String targetEntityId);
void releaseTask(String containerId, Long taskId, String userId);
void resumeTask(String containerId, Long taskId, String userId);
void skipTask(String containerId, Long taskId, String userId);
void startTask(String containerId, Long taskId, String userId);
void stopTask(String containerId, Long taskId, String userId);
void suspendTask(String containerId, Long taskId, String userId);
void nominateTask(String containerId, Long taskId, String userId, List<String> potentialOwners);
void setTaskPriority(String containerId, Long taskId, int priority);
void setTaskExpirationDate(String containerId, Long taskId, Date date);
void setTaskSkipable(String containerId, Long taskId, boolean skipable);
void setTaskName(String containerId, Long taskId, String name);
void setTaskDescription(String containerId, Long taskId, String description);
Long saveTaskContent(String containerId, Long taskId, Map<String, Object> values);
Map<String, Object> getTaskOutputContentByTaskId(String containerId, Long taskId);
Map<String, Object> getTaskInputContentByTaskId(String containerId, Long taskId);
void deleteTaskContent(String containerId, Long taskId, Long contentId);
Long addTaskComment(String containerId, Long taskId, String text, String addedBy, Date addedOn);
void deleteTaskComment(String containerId, Long taskId, Long commentId);
List<TaskComment> getTaskCommentsByTaskId(String containerId, Long taskId);
TaskComment getTaskCommentById(String containerId, Long taskId, Long commentId);
Long addTaskAttachment(String containerId, Long taskId, String userId, String name, Object attachment);
void deleteTaskAttachment(String containerId, Long taskId, Long attachmentId);
TaskAttachment getTaskAttachmentById(String containerId, Long taskId, Long attachmentId);
Object getTaskAttachmentContentById(String containerId, Long taskId, Long attachmentId);
List<TaskAttachment> getTaskAttachmentsByTaskId(String containerId, Long taskId);
TaskInstance getTaskInstance(String containerId, Long taskId);
TaskInstance getTaskInstance(String containerId, Long taskId, boolean withInputs, boolean withOutputs, boolean withAssignments);
List<TaskEventInstance> findTaskEvents(String containerId, Long taskId, Integer page, Integer pageSize);
List<TaskEventInstance> findTaskEvents(String containerId, Long taskId, Integer page, Integer pageSize, String sort, boolean sortOrder);
// task searches
TaskInstance findTaskByWorkItemId(Long workItemId);
TaskInstance findTaskById(Long taskId);
List<TaskSummary> findTasksAssignedAsBusinessAdministrator(String userId, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsBusinessAdministrator(String userId, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, String filter, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, List<String> groups, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksOwned(String userId, Integer page, Integer pageSize);
List<TaskSummary> findTasksOwned(String userId, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksByStatusByProcessInstanceId(Long processInstanceId, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasks(String userId, Integer page, Integer pageSize);
List<TaskEventInstance> findTaskEvents(Long taskId, Integer page, Integer pageSize);
List<TaskSummary> findTasksByVariable(String userId, String variableName, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksByVariableAndValue(String userId, String variableName, String variableValue, List<String> status, Integer page, Integer pageSize);
List<TaskSummary> findTasksAssignedAsBusinessAdministrator(String userId, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksAssignedAsBusinessAdministrator(String userId, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, String filter, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksAssignedAsPotentialOwner(String userId, List<String> groups, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksOwned(String userId, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksOwned(String userId, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksByStatusByProcessInstanceId(Long processInstanceId, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasks(String userId, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskEventInstance> findTaskEvents(Long taskId, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksByVariable(String userId, String variableName, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
List<TaskSummary> findTasksByVariableAndValue(String userId, String variableName, String variableValue, List<String> status, Integer page, Integer pageSize, String sort, boolean sortOrder);
void setResponseHandler(ResponseHandler responseHandler);
}