/* * 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.impl.persistence.entity; import java.util.HashMap; import java.util.List; import java.util.Map; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.db.BulkDeleteable; /** */ public class HistoricProcessInstanceEntityImpl extends HistoricScopeInstanceEntityImpl implements HistoricProcessInstanceEntity, BulkDeleteable { private static final long serialVersionUID = 1L; protected String endActivityId; protected String businessKey; protected String startUserId; protected String startActivityId; protected String superProcessInstanceId; protected String tenantId = ProcessEngineConfiguration.NO_TENANT_ID; protected String name; protected String localizedName; protected String description; protected String localizedDescription; protected String processDefinitionKey; protected String processDefinitionName; protected Integer processDefinitionVersion; protected String deploymentId; protected List queryVariables; public HistoricProcessInstanceEntityImpl() { } public HistoricProcessInstanceEntityImpl(ExecutionEntity processInstance) { id = processInstance.getId(); processInstanceId = processInstance.getId(); name = processInstance.getName(); businessKey = processInstance.getBusinessKey(); processDefinitionId = processInstance.getProcessDefinitionId(); processDefinitionKey = processInstance.getProcessDefinitionKey(); processDefinitionName = processInstance.getProcessDefinitionName(); processDefinitionVersion = processInstance.getProcessDefinitionVersion(); deploymentId = processInstance.getDeploymentId(); startTime = processInstance.getStartTime(); startUserId = processInstance.getStartUserId(); startActivityId = processInstance.getActivityId(); superProcessInstanceId = processInstance.getSuperExecution() != null ? processInstance.getSuperExecution().getProcessInstanceId() : null; // Inherit tenant id (if applicable) if (processInstance.getTenantId() != null) { tenantId = processInstance.getTenantId(); } } public Object getPersistentState() { Map persistentState = (Map) new HashMap(); persistentState.put("endTime", endTime); persistentState.put("businessKey", businessKey); persistentState.put("name", name); persistentState.put("durationInMillis", durationInMillis); persistentState.put("deleteReason", deleteReason); persistentState.put("endStateName", endActivityId); persistentState.put("superProcessInstanceId", superProcessInstanceId); persistentState.put("processDefinitionId", processDefinitionId); persistentState.put("processDefinitionKey", processDefinitionKey); persistentState.put("processDefinitionName", processDefinitionName); persistentState.put("processDefinitionVersion", processDefinitionVersion); persistentState.put("deploymentId", deploymentId); return persistentState; } // getters and setters //////////////////////////////////////////////////////// public String getEndActivityId() { return endActivityId; } public void setEndActivityId(String endActivityId) { this.endActivityId = endActivityId; } public String getBusinessKey() { return businessKey; } public void setBusinessKey(String businessKey) { this.businessKey = businessKey; } public String getStartUserId() { return startUserId; } public void setStartUserId(String startUserId) { this.startUserId = startUserId; } public String getStartActivityId() { return startActivityId; } public void setStartActivityId(String startUserId) { this.startActivityId = startUserId; } public String getSuperProcessInstanceId() { return superProcessInstanceId; } public void setSuperProcessInstanceId(String superProcessInstanceId) { this.superProcessInstanceId = superProcessInstanceId; } public String getTenantId() { return tenantId; } public void setTenantId(String tenantId) { this.tenantId = tenantId; } public String getName() { if (localizedName != null && localizedName.length() > 0) { return localizedName; } else { return name; } } public void setName(String name) { this.name = name; } public String getLocalizedName() { return localizedName; } public void setLocalizedName(String localizedName) { this.localizedName = localizedName; } public String getDescription() { if (localizedDescription != null && localizedDescription.length() > 0) { return localizedDescription; } else { return description; } } public void setDescription(String description) { this.description = description; } public String getLocalizedDescription() { return localizedDescription; } public void setLocalizedDescription(String localizedDescription) { this.localizedDescription = localizedDescription; } public String getProcessDefinitionKey() { return processDefinitionKey; } public void setProcessDefinitionKey(String processDefinitionKey) { this.processDefinitionKey = processDefinitionKey; } public String getProcessDefinitionName() { return processDefinitionName; } public void setProcessDefinitionName(String processDefinitionName) { this.processDefinitionName = processDefinitionName; } public Integer getProcessDefinitionVersion() { return processDefinitionVersion; } public void setProcessDefinitionVersion(Integer processDefinitionVersion) { this.processDefinitionVersion = processDefinitionVersion; } public String getDeploymentId() { return deploymentId; } public void setDeploymentId(String deploymentId) { this.deploymentId = deploymentId; } public Map getProcessVariables() { Map variables = new HashMap(); if (queryVariables != null) { for (HistoricVariableInstanceEntity variableInstance : queryVariables) { if (variableInstance.getId() != null && variableInstance.getTaskId() == null) { variables.put(variableInstance.getName(), variableInstance.getValue()); } } } return variables; } public List getQueryVariables() { if (queryVariables == null && Context.getCommandContext() != null) { queryVariables = new HistoricVariableInitializingList(); } return queryVariables; } public void setQueryVariables(List queryVariables) { this.queryVariables = queryVariables; } // common methods ////////////////////////////////////////////////////////// @Override public String toString() { return "HistoricProcessInstanceEntity[superProcessInstanceId=" + superProcessInstanceId + "]"; } }