/*
* 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.
* 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.jbpm.services.task.audit.impl.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.kie.internal.task.api.TaskVariable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Entity
@SequenceGenerator(name = "taskVarIdSeq", sequenceName = "TASK_VAR_ID_SEQ", allocationSize = 1)
public class TaskVariableImpl implements TaskVariable, Serializable {
private static final long serialVersionUID = 5388016330549830048L;
private static final Logger logger = LoggerFactory.getLogger(TaskVariableImpl.class);
@Transient
private final int VARIABLE_LOG_LENGTH = Integer.parseInt(System.getProperty("org.jbpm.task.var.log.length", "4000"));
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "taskVarIdSeq")
private Long id;
private Long taskId;
private Long processInstanceId;
private String processId;
private String name;
@Column(length=4000)
private String value;
@Enumerated(EnumType.ORDINAL)
private VariableType type;
@Temporal(TemporalType.TIMESTAMP)
private Date modificationDate;
public Long getId() {
return id;
}
@Override
public Long getTaskId() {
return taskId;
}
@Override
public Long getProcessInstanceId() {
return processInstanceId;
}
@Override
public String getProcessId() {
return processId;
}
@Override
public String getName() {
return name;
}
@Override
public String getValue() {
return value;
}
@Override
public Date getModificationDate() {
return modificationDate;
}
public void setId(Long id) {
this.id = id;
}
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
public void setProcessInstanceId(Long processInstanceId) {
this.processInstanceId = processInstanceId;
}
public void setProcessId(String processId) {
this.processId = processId;
}
public void setName(String name) {
this.name = name;
}
public void setValue(String value) {
if (value != null && value.length() > VARIABLE_LOG_LENGTH) {
value = value.substring(0, VARIABLE_LOG_LENGTH);
logger.warn("Task variable '{}' content was trimmed as it was too long (more than {} characters)", name, VARIABLE_LOG_LENGTH);
}
this.value = value;
}
public void setModificationDate(Date modificationDate) {
this.modificationDate = modificationDate;
}
public VariableType getType() {
return type;
}
public void setType(VariableType type) {
this.type = type;
}
@Override
public String toString() {
return "TaskVariableImpl [taskId=" + taskId + ", name='" + name + "', value='" + value + "', type=" + type
+ " (processInstanceId=" + processInstanceId + ", processId=" + processId + ")]";
}
}