package org.jblooming.logging;
import org.jblooming.ontology.IdentifiableSupport;
import org.jblooming.operator.Operator;
import org.hibernate.annotations.Index;
import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.DocumentId;
import javax.persistence.*;
import java.util.Date;
import java.io.Serializable;
/**
* @author Pietro Polsinelli ppolsinelli@open-lab.com
* @author Roberto Bicchierai rbicchierai@open-lab.com
*/
@Entity
@Table(name = "_auditlog")
public class AuditLogRecord extends IdentifiableSupport {
private String message;
private String entityId;
private String entityClass;
private String fullName;
private Date created;
private String data;
AuditLogRecord() {
}
public AuditLogRecord(String message,
Serializable entityId,
String entityClass,
Operator operator) {
this.message = message;
this.entityId = entityId!=null ? entityId.toString() : "null";
this.entityClass = entityClass;
this.fullName = operator.getFullname();
this.created = new Date();
}
@Id
@Type(type = "int")
@GeneratedValue(strategy = GenerationType.AUTO)
public Serializable getId() {
return super.getId();
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Index(name = "idx_auditlog_entid")
public String getEntityId() {
return entityId;
}
public void setEntityId(String entityId) {
this.entityId = entityId;
}
@Index(name = "idx_auditlog_entclass")
public String getEntityClass() {
return entityClass;
}
public void setEntityClass(String entityClass) {
this.entityClass = entityClass;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
@Index(name = "idx_auditlog_created")
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
@Lob
//@Type(type = "org.hibernate.type.TextType")
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}