/** * */ 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.Temporal; import javax.persistence.TemporalType; import org.hibernate.annotations.ForeignKey; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotNull; /** * Objecte de domini que representa un expedient per a executar * a una acció massiva. * * @author Limit Tecnologies <limit@limit.es> */ @Entity @Table(name="hel_exec_masexp") public class ExecucioMassivaExpedient implements Serializable, GenericEntity<Long> { public enum ExecucioMassivaEstat { ESTAT_FINALITZAT, ESTAT_ERROR, ESTAT_PENDENT, ESTAT_CANCELAT } private Long id; @NotNull private Date dataInici; private Date dataFi; @NotNull private ExecucioMassivaEstat estat; private String error; private int ordre; @NotNull private ExecucioMassiva execucioMassiva; private Expedient expedient; private String tascaId; private String processInstanceId; public ExecucioMassivaExpedient() {} public ExecucioMassivaExpedient(ExecucioMassiva execucioMassiva, Expedient expedient, int ordre) { this.execucioMassiva = execucioMassiva; this.expedient = expedient; this.ordre = ordre; this.estat = ExecucioMassivaEstat.ESTAT_PENDENT; this.dataInici = execucioMassiva.getDataInici(); } public ExecucioMassivaExpedient(ExecucioMassiva execucioMassiva, Expedient expedient, String tascaId, int ordre) { this.execucioMassiva = execucioMassiva; this.expedient = expedient; this.tascaId = tascaId; this.ordre = ordre; this.estat = ExecucioMassivaEstat.ESTAT_PENDENT; this.dataInici = execucioMassiva.getDataInici(); } public ExecucioMassivaExpedient(ExecucioMassiva execucioMassiva, String processInstanceId, int ordre) { this.execucioMassiva = execucioMassiva; this.processInstanceId = processInstanceId; this.ordre = ordre; this.estat = ExecucioMassivaEstat.ESTAT_PENDENT; this.dataInici = execucioMassiva.getDataInici(); } @Id @GeneratedValue(strategy = GenerationType.TABLE, generator="gen_estat") @TableGenerator(name="gen_estat", 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="data_inici") @Temporal(TemporalType.TIMESTAMP) public Date getDataInici() { return dataInici; } public void setDataInici(Date dataInici) { this.dataInici = dataInici; } @Column(name="data_fi") @Temporal(TemporalType.TIMESTAMP) public Date getDataFi() { return dataFi; } public void setDataFi(Date dataFi) { this.dataFi = dataFi; } @Column(name="estat", nullable=false) public ExecucioMassivaEstat getEstat() { return estat; } public void setEstat(ExecucioMassivaEstat estat) { this.estat = estat; } @Lob @Column(name="error") public String getError() { return error; } public void setError(String error) { this.error = error; } @Column(name="ordre", nullable=false) public int getOrdre() { return ordre; } public void setOrdre(int ordre) { this.ordre = ordre; } @ManyToOne(optional=false) @JoinColumn(name="execmas_id") @ForeignKey(name="hel_execmas_exemasex_fk") public ExecucioMassiva getExecucioMassiva() { return execucioMassiva; } public void setExecucioMassiva(ExecucioMassiva execucioMassiva) { this.execucioMassiva = execucioMassiva; } @ManyToOne(optional=true) @JoinColumn(name="expedient_id") @ForeignKey(name="hel_expedient_exemasex_fk") public Expedient getExpedient() { return expedient; } public void setExpedient(Expedient expedient) { this.expedient = expedient; } @Column(name="tasca_id", nullable=true) public String getTascaId() { return tascaId; } public void setTascaId(String tascaId) { this.tascaId = tascaId; } @Column(name="procinst_id", nullable=true) public String getProcessInstanceId() { return processInstanceId; } public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((execucioMassiva == null) ? 0 : execucioMassiva.hashCode()); result = prime * result + ((expedient == null) ? 0 : expedient.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; ExecucioMassivaExpedient other = (ExecucioMassivaExpedient) obj; if (execucioMassiva == null) { if (other.execucioMassiva != null) return false; } else if (!execucioMassiva.equals(other.execucioMassiva)) return false; if (expedient == null) { if (other.expedient != null) return false; } else if (!expedient.equals(other.expedient)) return false; return true; } private static final long serialVersionUID = 1L; }