org.kie.server.services.jbpm.ConvertUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kie-server-services-jbpm Show documentation
Show all versions of kie-server-services-jbpm Show documentation
KIE jBPM Execution Server Extension
/*
* Copyright 2016 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.services.jbpm;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.jbpm.services.api.model.NodeInstanceDesc;
import org.jbpm.services.api.model.ProcessDefinition;
import org.jbpm.services.api.model.ProcessInstanceDesc;
import org.jbpm.services.api.model.ProcessInstanceWithVarsDesc;
import org.jbpm.services.api.model.UserTaskInstanceDesc;
import org.jbpm.services.api.model.UserTaskInstanceWithVarsDesc;
import org.jbpm.services.api.model.VariableDesc;
import org.kie.api.runtime.query.QueryContext;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.TaskSummary;
import org.kie.internal.query.QueryFilter;
import org.kie.server.api.model.definition.ProcessDefinitionList;
import org.kie.server.api.model.definition.QueryDefinition;
import org.kie.server.api.model.definition.QueryDefinitionList;
import org.kie.server.api.model.instance.NodeInstance;
import org.kie.server.api.model.instance.NodeInstanceList;
import org.kie.server.api.model.instance.ProcessInstance;
import org.kie.server.api.model.instance.ProcessInstanceList;
import org.kie.server.api.model.instance.TaskInstance;
import org.kie.server.api.model.instance.TaskInstanceList;
import org.kie.server.api.model.instance.TaskSummaryList;
import org.kie.server.api.model.instance.VariableInstance;
import org.kie.server.api.model.instance.VariableInstanceList;
public class ConvertUtils {
public static ProcessInstanceList convertToProcessInstanceList(Collection instances) {
if (instances == null) {
return new ProcessInstanceList(new org.kie.server.api.model.instance.ProcessInstance[0]);
}
List processInstances = new ArrayList(instances.size());
for (ProcessInstanceDesc pi : instances) {
org.kie.server.api.model.instance.ProcessInstance instance = convertToProcessInstance(pi);
processInstances.add(instance);
}
return new ProcessInstanceList(processInstances);
}
public static ProcessInstanceList convertToProcessInstanceWithVarsList(Collection instances) {
if (instances == null) {
return new ProcessInstanceList(new org.kie.server.api.model.instance.ProcessInstance[0]);
}
List processInstances = new ArrayList(instances.size());
for (ProcessInstanceWithVarsDesc pi : instances) {
org.kie.server.api.model.instance.ProcessInstance instance = convertToProcessInstance(pi);
instance.setVariables(pi.getVariables());
processInstances.add(instance);
}
return new ProcessInstanceList(processInstances);
}
public static org.kie.server.api.model.instance.ProcessInstance convertToProcessInstance(ProcessInstanceDesc pi) {
if (pi == null) {
return null;
}
org.kie.server.api.model.instance.ProcessInstance instance = org.kie.server.api.model.instance.ProcessInstance.builder()
.id(pi.getId())
.processId(pi.getProcessId())
.processName(pi.getProcessName())
.processVersion(pi.getProcessVersion())
.containerId(pi.getDeploymentId())
.processInstanceDescription(pi.getProcessInstanceDescription())
.correlationKey(pi.getCorrelationKey())
.parentInstanceId(pi.getParentId())
.date(pi.getDataTimeStamp())
.initiator(pi.getInitiator())
.state(pi.getState())
.build();
if (pi.getActiveTasks() != null && !pi.getActiveTasks().isEmpty()) {
org.kie.server.api.model.instance.TaskSummary[] tasks = new org.kie.server.api.model.instance.TaskSummary[pi.getActiveTasks().size()];
int counter = 0;
for (UserTaskInstanceDesc taskSummary : pi.getActiveTasks()) {
org.kie.server.api.model.instance.TaskSummary task = org.kie.server.api.model.instance.TaskSummary.builder()
.id(taskSummary.getTaskId())
.name(taskSummary.getName())
.description(taskSummary.getDescription())
.activationTime(taskSummary.getActivationTime())
.actualOwner(taskSummary.getActualOwner())
.containerId(taskSummary.getDeploymentId())
.createdBy(taskSummary.getCreatedBy())
.createdOn(taskSummary.getCreatedOn())
.priority(taskSummary.getPriority())
.processId(taskSummary.getProcessId())
.processInstanceId(taskSummary.getProcessInstanceId())
.build();
tasks[counter] = task;
counter++;
}
instance.setActiveUserTasks(new TaskSummaryList(tasks));
}
return instance;
}
public static ProcessDefinitionList convertToProcessList(Collection definitions) {
if (definitions == null) {
return new ProcessDefinitionList(new org.kie.server.api.model.definition.ProcessDefinition[0]);
}
List processes = new ArrayList(definitions.size());
for (ProcessDefinition pd : definitions) {
org.kie.server.api.model.definition.ProcessDefinition definition = convertToProcess(pd);
processes.add(definition);
}
return new ProcessDefinitionList(processes);
}
public static org.kie.server.api.model.definition.ProcessDefinition convertToProcess(ProcessDefinition processDesc) {
if (processDesc == null) {
return null;
}
org.kie.server.api.model.definition.ProcessDefinition processDefinition = org.kie.server.api.model.definition.ProcessDefinition.builder()
.id(processDesc.getId())
.name(processDesc.getName())
.packageName(processDesc.getPackageName())
.version(processDesc.getVersion())
.containerId(processDesc.getDeploymentId())
.build();
return processDefinition;
}
public static QueryContext buildQueryContext(Integer page, Integer pageSize) {
return new QueryContext(page * pageSize, pageSize);
}
public static QueryContext buildQueryContext(Integer page, Integer pageSize, String orderBy, boolean asc) {
return new QueryContext(page * pageSize, pageSize, orderBy, asc);
}
public static QueryFilter buildQueryFilter(Integer page, Integer pageSize) {
return new QueryFilter(page * pageSize, pageSize);
}
public static QueryFilter buildQueryFilter(Integer page, Integer pageSize, String orderBy, boolean asc) {
return new QueryFilter(page * pageSize, pageSize, orderBy, asc);
}
public static List buildTaskStatuses(List status) {
if (status == null || status.isEmpty()) {
return null;
}
List taskStatuses = new ArrayList();
for (String s : status) {
taskStatuses.add(Status.valueOf(s));
}
return taskStatuses;
}
public static NodeInstance convertToNodeInstance(NodeInstanceDesc nodeInstanceDesc) {
NodeInstance nodeInstance = NodeInstance.builder()
.id(nodeInstanceDesc.getId())
.name(nodeInstanceDesc.getName())
.nodeId(nodeInstanceDesc.getNodeId())
.nodeType(nodeInstanceDesc.getNodeType())
.processInstanceId(nodeInstanceDesc.getProcessInstanceId())
.containerId(nodeInstanceDesc.getDeploymentId())
.workItemId(nodeInstanceDesc.getWorkItemId())
.completed(nodeInstanceDesc.isCompleted())
.connection(nodeInstanceDesc.getConnection())
.date(nodeInstanceDesc.getDataTimeStamp())
.build();
return nodeInstance;
}
public static NodeInstanceList convertToNodeInstanceList(Collection definitions) {
if (definitions == null) {
return new NodeInstanceList(new NodeInstance[0]);
}
List processes = new ArrayList(definitions.size());
for (NodeInstanceDesc ni : definitions) {
NodeInstance nodeInstance = convertToNodeInstance(ni);
processes.add(nodeInstance);
}
return new NodeInstanceList(processes);
}
public static VariableInstance convertToVariable(VariableDesc variableDesc) {
VariableInstance instance = VariableInstance.builder()
.name(variableDesc.getVariableId())
.processInstanceId(variableDesc.getProcessInstanceId())
.value(variableDesc.getNewValue())
.oldValue(variableDesc.getOldValue())
.date(variableDesc.getDataTimeStamp())
.build();
return instance;
}
public static VariableInstanceList convertToVariablesList(Collection variables) {
if (variables == null) {
return new VariableInstanceList(new VariableInstance[0]);
}
List processes = new ArrayList(variables.size());
for (VariableDesc vi : variables) {
VariableInstance nodeInstance = convertToVariable(vi);
processes.add(nodeInstance);
}
return new VariableInstanceList(processes);
}
public static TaskInstanceList convertToTaskInstanceWithVarsList(Collection instances) {
if (instances == null) {
return new TaskInstanceList(new org.kie.server.api.model.instance.TaskInstance[0]);
}
List taskInstances = new ArrayList(instances.size());
for (UserTaskInstanceWithVarsDesc task : instances) {
org.kie.server.api.model.instance.TaskInstance instance = convertToTask(task);
instance.setInputData(task.getVariables());
taskInstances.add(instance);
}
return new TaskInstanceList(taskInstances);
}
public static TaskInstanceList convertToTaskInstanceList(Collection instances) {
if (instances == null) {
return new TaskInstanceList(new org.kie.server.api.model.instance.TaskInstance[0]);
}
List taskInstances = new ArrayList(instances.size());
for (UserTaskInstanceDesc task : instances) {
org.kie.server.api.model.instance.TaskInstance instance = convertToTask(task);
taskInstances.add(instance);
}
return new TaskInstanceList(taskInstances);
}
public static TaskInstance convertToTask(UserTaskInstanceDesc userTask) {
TaskInstance instance = TaskInstance.builder()
.id(userTask.getTaskId())
.name(userTask.getName())
.processInstanceId(userTask.getProcessInstanceId())
.processId(userTask.getProcessId())
.activationTime(userTask.getActivationTime())
.actualOwner(userTask.getActualOwner())
.containerId(userTask.getDeploymentId())
.createdBy(userTask.getCreatedBy())
.createdOn(userTask.getCreatedOn())
.description(userTask.getDescription())
.expirationTime(userTask.getDueDate())
.status(userTask.getStatus())
.priority(userTask.getPriority())
.build();
return instance;
}
public static TaskSummaryList convertToTaskSummaryList(Collection tasks) {
if (tasks == null) {
return new TaskSummaryList(new org.kie.server.api.model.instance.TaskSummary[0]);
}
org.kie.server.api.model.instance.TaskSummary[] instances = new org.kie.server.api.model.instance.TaskSummary[tasks.size()];
int counter = 0;
for (TaskSummary taskSummary : tasks) {
instances[counter] = convertToTaskSummary(taskSummary);
counter++;
}
return new TaskSummaryList(instances);
}
public static org.kie.server.api.model.instance.TaskSummary convertToTaskSummary(TaskSummary taskSummary) {
org.kie.server.api.model.instance.TaskSummary task = org.kie.server.api.model.instance.TaskSummary.builder()
.id(taskSummary.getId())
.name(taskSummary.getName())
.description(taskSummary.getDescription())
.subject(taskSummary.getSubject())
.taskParentId(taskSummary.getParentId())
.activationTime(taskSummary.getActivationTime())
.actualOwner(taskSummary.getActualOwnerId())
.containerId(taskSummary.getDeploymentId())
.createdBy(taskSummary.getCreatedById())
.createdOn(taskSummary.getCreatedOn())
.expirationTime(taskSummary.getExpirationTime())
.priority(taskSummary.getPriority())
.processId(taskSummary.getProcessId())
.processInstanceId(taskSummary.getProcessInstanceId())
.status(taskSummary.getStatusId())
.skipable(taskSummary.isSkipable())
.build();
return task;
}
public static QueryDefinition convertQueryDefinition(org.jbpm.services.api.query.model.QueryDefinition queryDefinition) {
if (queryDefinition == null) {
return null;
}
QueryDefinition query = QueryDefinition.builder()
.name(queryDefinition.getName())
.expression(queryDefinition.getExpression())
.source(queryDefinition.getSource())
.target(queryDefinition.getTarget().toString())
.build();
return query;
}
public static QueryDefinitionList convertToQueryDefinitionList(Collection definitions) {
if (definitions == null) {
return new QueryDefinitionList(new QueryDefinition[0]);
}
QueryDefinition[] instances = new QueryDefinition[definitions.size()];
int counter = 0;
for (org.jbpm.services.api.query.model.QueryDefinition queryDefinition : definitions) {
instances[counter] = convertQueryDefinition(queryDefinition);
counter++;
}
return new QueryDefinitionList(instances);
}
public static String nullEmpty(String value) {
if (value != null && value.isEmpty()) {
return null;
}
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy