package org.drools.persistence.session;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Transient;
import javax.persistence.Version;
@Entity
public class SessionInfo {
private @Id
@GeneratedValue(strategy = GenerationType.AUTO)
int id;
@Version
@Column(name = "OPTLOCK")
private int version;
private Date startDate;
private Date lastModificationDate;
@Lob
private byte[] rulesByteArray;
@Transient
JPASessionMarshallingHelper helper;
public SessionInfo() {
this.startDate = new Date();
}
public int getId() {
return this.id;
}
public int getVersion() {
return this.version;
}
public void setJPASessionMashallingHelper(JPASessionMarshallingHelper helper) {
this.helper = helper;
}
public JPASessionMarshallingHelper getJPASessionMashallingHelper() {
return helper;
}
public byte[] getData() {
return this.rulesByteArray;
}
public Date getStartDate() {
return this.startDate;
}
public Date getLastModificationDate() {
return this.lastModificationDate;
}
public void setLastModificationDate(Date date) {
this.lastModificationDate = date;
}
@PrePersist
@PreUpdate
public void update() {
this.rulesByteArray = this.helper.getSnapshot();
}
}