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

com.xlrit.gears.engine.facade.EngineFacade Maven / Gradle / Ivy

package com.xlrit.gears.engine.facade;

import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

import com.xlrit.gears.base.choice.Choices;
import com.xlrit.gears.engine.form.RenderOptions;
import com.xlrit.gears.engine.task.TaskHandler;

import com.fasterxml.jackson.databind.JsonNode;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.springframework.web.multipart.MultipartFile;

public interface EngineFacade {
	String TASK_VAR_SAVED_VALUES = "values";
	String TASK_VAR_ERROR = "error";

	JsonNode renderStartForm(ProcessDefinition def, RenderOptions options, Map vars);
	JsonNode renderTaskForm(Task task, RenderOptions options);

	Choices getChoices(String taskId, String processDefinitionId, String path, JsonNode values);
	Choices getTaskChoices(String taskId, String path, JsonNode values);
	Choices getStartChoices(String processDefinitionId, String path, JsonNode values);

	ProcessInstance startProcessById(String deploymentId, String processDefinitionId, JsonNode formValues, List files);
	TaskEntity saveStartForm(String deploymentId, String processDefinitionId, JsonNode formValues, List files);
	void cancelProcess(String processInstanceId);

	void claimTask(String taskId);
	void transferTask(String taskId, String currentAssignee);

	void saveTask(String taskId, JsonNode formValues, List files);

	Future submitTaskAsync(String deploymentId, String taskId, JsonNode formValues, List files);
	Object handleAutoTask(String roleId, TaskEntity task, TaskHandler taskHandler);

}