/*
* 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.jbpm.persistence.scripts.oldentities;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Version;
@Entity
@SequenceGenerator(name = "processInstanceInfoIdSeq", sequenceName = "PROCESS_INSTANCE_INFO_ID_SEQ")
public class ProcessInstanceInfo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "processInstanceInfoIdSeq")
@Column(name = "InstanceId")
private Long processInstanceId;
@Version
@Column(name = "OPTLOCK")
private int version;
private String processId;
private Date startDate;
private Date lastReadDate;
private Date lastModificationDate;
private int state;
@Lob
@Column(length = 2147483647)
byte[] processInstanceByteArray;
@ElementCollection
@CollectionTable(name = "EventTypes", joinColumns = @JoinColumn(name = "InstanceId"))
@Column(name = "element")
private Set<String> eventTypes = new HashSet<String>();
public ProcessInstanceInfo() {
}
public Long getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(Long processInstanceId) {
this.processInstanceId = processInstanceId;
}
public Long getId() {
return processInstanceId;
}
public String getProcessId() {
return processId;
}
public Date getStartDate() {
return startDate;
}
public Date getLastModificationDate() {
return lastModificationDate;
}
public Date getLastReadDate() {
return lastReadDate;
}
public int getState() {
return state;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final ProcessInstanceInfo other = (ProcessInstanceInfo) obj;
if (this.processInstanceId != other.processInstanceId && (this.processInstanceId == null || !this
.processInstanceId.equals(other.processInstanceId))) {
return false;
}
if (this.version != other.version) {
return false;
}
if ((this.processId == null) ? (other.processId != null) : !this.processId.equals(other.processId)) {
return false;
}
if (this.startDate != other.startDate && (this.startDate == null || !this.startDate.equals(other.startDate))) {
return false;
}
if (this.lastReadDate != other.lastReadDate && (this.lastReadDate == null || !this.lastReadDate.equals(other
.lastReadDate))) {
return false;
}
if (this.lastModificationDate != other.lastModificationDate && (this.lastModificationDate == null || !this
.lastModificationDate.equals(other.lastModificationDate))) {
return false;
}
if (this.state != other.state) {
return false;
}
if (!Arrays.equals(this.processInstanceByteArray,
other.processInstanceByteArray)) {
return false;
}
if (this.eventTypes != other.eventTypes && (this.eventTypes == null || !this.eventTypes.equals(other
.eventTypes))) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 61 * hash + (this.processInstanceId != null ? this.processInstanceId.hashCode() : 0);
hash = 61 * hash + this.version;
hash = 61 * hash + (this.processId != null ? this.processId.hashCode() : 0);
hash = 61 * hash + (this.startDate != null ? this.startDate.hashCode() : 0);
hash = 61 * hash + (this.lastReadDate != null ? this.lastReadDate.hashCode() : 0);
hash = 61 * hash + (this.lastModificationDate != null ? this.lastModificationDate.hashCode() : 0);
hash = 61 * hash + this.state;
hash = 61 * hash + Arrays.hashCode(this.processInstanceByteArray);
hash = 61 * hash + (this.eventTypes != null ? this.eventTypes.hashCode() : 0);
return hash;
}
public int getVersion() {
return version;
}
public Set<String> getEventTypes() {
return eventTypes;
}
public byte[] getProcessInstanceByteArray() {
return processInstanceByteArray;
}
public void setVersion(int version) {
this.version = version;
}
public void setProcessId(String processId) {
this.processId = processId;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public void setLastReadDate(Date lastReadDate) {
this.lastReadDate = lastReadDate;
}
public void setLastModificationDate(Date lastModificationDate) {
this.lastModificationDate = lastModificationDate;
}
public void setState(int state) {
this.state = state;
}
public void setProcessInstanceByteArray(byte[] processInstanceByteArray) {
this.processInstanceByteArray = processInstanceByteArray;
}
public void setEventTypes(Set<String> eventTypes) {
this.eventTypes = eventTypes;
}
}