package net.conselldemallorca.helium.core.model.hibernate;
import java.io.Serializable;
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.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.ForeignKey;
/**
* Objecte de domini que representa un document del portasignatures.
*
* @author Limit Tecnologies <limit@limit.es>
*/
@Entity
@Table(name="hel_portasignatures",
uniqueConstraints={@UniqueConstraint(columnNames={"document_id", "token_id"})})
public class Portasignatures implements Serializable, GenericEntity<Long> {
public enum TipusEstat {
BLOQUEJAT,
PENDENT, // El document s'ha enviat però encara no s'ha rebut al callback cap resposta
SIGNAT, // S'ha rebut petició al callback indicant que el document ha estat signat
REBUTJAT, // S'ha rebut petició al callback indicant que el document ha estat rebujat
PROCESSAT, // El document signat o rebujat s'ha processat correctament
CANCELAT, // El document s'ha esborrat de l'expedient
ERROR, // El document s'ha intentat processar i ha produit un error
ESBORRAT // S'ha esborrat l'expedient al qual pertany el document
}
public enum Transicio {
SIGNAT,
REBUTJAT
}
private Long id;
private Integer documentId;
private Long tokenId;
private Date dataEnviat;
private TipusEstat estat;
private Transicio transition;
private Long documentStoreId;
private String motiuRebuig;
private String transicioOK;
private String transicioKO;
private Date dataProcessamentPrimer;
private Date dataProcessamentDarrer;
private Date dataSignatRebutjat;
private Date dataCustodiaIntent;
private Date dataCustodiaOk;
private Date dataSignalIntent;
private Date dataSignalOk;
private String errorCallbackProcessant;
private String processInstanceId;
private Expedient expedient;
public Portasignatures() {}
public Portasignatures(
Integer documentId,
Long tokenId,
Date dataEnviat,
TipusEstat estat,
Transicio transition,
Long documentStoreId,
String motiuRebuig,
String transicioOK,
String transicioKO) {
this.documentId = documentId;
this.tokenId = tokenId;
this.dataEnviat = dataEnviat;
this.estat = estat;
this.transition = transition;
this.documentStoreId = documentStoreId;
this.motiuRebuig = motiuRebuig;
this.transicioOK = transicioOK;
this.transicioKO = transicioKO;
}
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator="gen_portasignatures")
@TableGenerator(name="gen_portasignatures", table="hel_idgen", pkColumnName="taula", valueColumnName="valor")
@Column(name="id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="document_id", nullable=false)
public Integer getDocumentId() {
return documentId;
}
public void setDocumentId(Integer documentId) {
this.documentId = documentId;
}
@Column(name="token_id", nullable=false)
public Long getTokenId() {
return tokenId;
}
public void setTokenId(Long tokenId) {
this.tokenId = tokenId;
}
@Column(name="data_enviat")
public Date getDataEnviat() {
return dataEnviat;
}
public void setDataEnviat(Date dataEnviat) {
this.dataEnviat = dataEnviat;
}
@Column(name="estat")
public TipusEstat getEstat() {
return estat;
}
public void setEstat(TipusEstat estat) {
this.estat = estat;
}
@Column(name="transicio")
public Transicio getTransition() {
return transition;
}
public void setTransition(Transicio transition) {
this.transition = transition;
}
@Column(name="document_store_id")
public Long getDocumentStoreId() {
return documentStoreId;
}
public void setDocumentStoreId(Long documentStoreId) {
this.documentStoreId = documentStoreId;
}
@Column(name="motiu_rebuig")
public String getMotiuRebuig() {
return motiuRebuig;
}
public void setMotiuRebuig(String motiuRebuig) {
this.motiuRebuig = motiuRebuig;
}
@Column(name="transicio_ok")
public String getTransicioOK() {
return transicioOK;
}
public void setTransicioOK(String transicioOK) {
this.transicioOK = transicioOK;
}
@Column(name="transicio_ko")
public String getTransicioKO() {
return transicioKO;
}
public void setTransicioKO(String transicioKO) {
this.transicioKO = transicioKO;
}
@Column(name="data_cb_pri")
public Date getDataProcessamentPrimer() {
return dataProcessamentPrimer;
}
public void setDataProcessamentPrimer(Date dataProcessamentPrimer) {
this.dataProcessamentPrimer = dataProcessamentPrimer;
}
@Column(name="data_cb_dar")
public Date getDataProcessamentDarrer() {
return dataProcessamentDarrer;
}
public void setDataProcessamentDarrer(Date dataProcessamentDarrer) {
this.dataProcessamentDarrer = dataProcessamentDarrer;
}
@Column(name="data_signat_rebutjat")
public Date getDataSignatRebutjat() {
return dataSignatRebutjat;
}
public void setDataSignatRebutjat(Date dataSignatRebutjat) {
this.dataSignatRebutjat = dataSignatRebutjat;
}
@Column(name="data_custodia_intent")
public Date getDataCustodiaIntent() {
return dataCustodiaIntent;
}
public void setDataCustodiaIntent(Date dataCustodiaIntent) {
this.dataCustodiaIntent = dataCustodiaIntent;
}
@Column(name="data_custodia_ok")
public Date getDataCustodiaOk() {
return dataCustodiaOk;
}
public void setDataCustodiaOk(Date dataCustodiaOk) {
this.dataCustodiaOk = dataCustodiaOk;
}
@Column(name="data_signal_intent")
public Date getDataSignalIntent() {
return dataSignalIntent;
}
public void setDataSignalIntent(Date dataSignalIntent) {
this.dataSignalIntent = dataSignalIntent;
}
@Column(name="data_signal_ok")
public Date getDataSignalOk() {
return dataSignalOk;
}
public void setDataSignalOk(Date dataSignalOk) {
this.dataSignalOk = dataSignalOk;
}
@Lob
@Column(name="error_cb_proces")
public String getErrorCallbackProcessant() {
return errorCallbackProcessant;
}
public void setErrorCallbackProcessant(String errorCallbackProcessant) {
this.errorCallbackProcessant = errorCallbackProcessant;
}
@Column(name="process_instance_id", length=255, nullable=false)
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
@ManyToOne(optional=false)
@JoinColumn(name="expedient_id")
@ForeignKey(name="hel_expedient_psigna_fk")
public Expedient getExpedient() {
return expedient;
}
public void setExpedient(Expedient expedient) {
this.expedient = expedient;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((dataEnviat == null) ? 0 : dataEnviat.hashCode());
result = prime * result
+ ((documentId == null) ? 0 : documentId.hashCode());
result = prime * result + ((estat == null) ? 0 : estat.hashCode());
result = prime * result + ((tokenId == null) ? 0 : tokenId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Portasignatures other = (Portasignatures) obj;
if (dataEnviat == null) {
if (other.dataEnviat != null)
return false;
} else if (!dataEnviat.equals(other.dataEnviat))
return false;
if (documentId == null) {
if (other.documentId != null)
return false;
} else if (!documentId.equals(other.documentId))
return false;
if (estat == null) {
if (other.estat != null)
return false;
} else if (!estat.equals(other.estat))
return false;
if (tokenId == null) {
if (other.tokenId != null)
return false;
} else if (!tokenId.equals(other.tokenId))
return false;
return true;
}
private static final long serialVersionUID = 1L;
}