DocHistory.java
package sk.iway.iwcm.doc;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.DB;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.users.UserBasicDto;
import sk.iway.iwcm.users.jpa.UserBasicDtoConverter;
@Entity
@Table(name = "documents_history")
@Getter
@Setter
public class DocHistory extends DocBasic {
@PrePersist
public void prePersist() {
//log.debug("prePersist");
Logger.debug(getClass(), "prePersist, id1"+id);
if (id != null && (id.intValue()==0 || id.intValue()==-1)) {
id = null;
Logger.debug(getClass(), "prePersist, id2="+id);
}
}
@Id
@Column(name = "history_id")
@GeneratedValue(strategy = GenerationType.IDENTITY, generator="S_documents_history")
@DataTableColumn(inputType = DataTableColumnType.ID, title="ID")
protected Long id;
@Column(name = "doc_id")
private Integer docId;
@Column(name = "awaiting_approve")
private String awaitingApprove;
@Column(name = "publicable")
private Boolean publicable;
@Column(name = "approved_by")
private Integer approvedBy;
@Column(name = "disapproved_by")
private Integer disapprovedBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "approve_date")
private Date approveDate;
@Transient
private String historyApprovedByName;
@Transient
private String historyDisapprovedByName;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "save_date")
private Date saveDate;
@Column(name = "actual")
private Boolean actual;
//Get author as UserDetails object
@Column(name = "author_id", insertable = false, updatable = false) // author_id is allready used, so this one must be read onl
@Convert(converter = UserBasicDtoConverter.class)
@JsonProperty(access = JsonProperty.Access.READ_ONLY) //toto nepotrebujeme deserializovat pri post requeste
private UserBasicDto userDetails;
@Override
public Long getId()
{
if (this.id != null && this.id.longValue()<1) return null;
return this.id;
}
@Override
public void setId(Long id)
{
this.id = id;
}
@Override
public int getDocId()
{
if (docId == null) return 0;
return this.docId.intValue();
}
@Override
public void setDocId(int docId)
{
this.docId = Integer.valueOf(docId);
}
public void setHistoryId(int historyId)
{
if (historyId == 0) return;
this.id = Long.valueOf(historyId);
}
public void setHistoryApprovedBy(int historyApprovedBy)
{
this.approvedBy = historyApprovedBy;
}
public void setHistoryDisapprovedBy(int historyDisapprovedBy)
{
this.disapprovedBy = historyDisapprovedBy;
}
public int getHistoryId() {
if (id == null) return 0;
return id.intValue();
}
public int getHistoryApprovedBy() {
if (approvedBy==null) return 0;
return approvedBy.intValue();
}
public int getHistoryDisapprovedBy() {
if (disapprovedBy==null) return 0;
return disapprovedBy.intValue();
}
public void setHistorySaveDate(String historySaveDate)
{
if (Tools.isEmpty(historySaveDate)) return;
this.saveDate = new Date(DB.getTimestamp(historySaveDate));
}
public String getHistoryApproveDate() {
return Tools.formatDateTime(approveDate);
}
public void setHistoryApproveDate(String historyApproveDate) {
if (Tools.isEmpty(historyApproveDate)) return;
this.approveDate = new Date(DB.getTimestamp(historyApproveDate));
}
public String getHistoryApprovedByName() {
return historyApprovedByName;
}
public void setHistoryApprovedByName(String historyApprovedByName) {
if (Tools.isEmpty(historyApprovedByName)) return;
this.historyApprovedByName = historyApprovedByName;
}
public String getHistoryDisapprovedByName() {
return historyDisapprovedByName;
}
public void setHistoryDisapprovedByName(String historyDisapprovedByName) {
if (Tools.isEmpty(historyDisapprovedByName)) return;
this.historyDisapprovedByName = historyDisapprovedByName;
}
public String getHistorySaveDate() {
return Tools.formatDateTime(saveDate);
}
public boolean isHistoryActual()
{
if (actual == null) return false;
return actual.booleanValue();
}
public void setHistoryActual(boolean historyActual) {
this.actual = historyActual;
}
@Override
public String getPublishStartStringExtra() {
if (Boolean.TRUE.equals(publicable)) {
return getPublishStartString();
}
return "";
}
}