/** * */ package net.conselldemallorca.helium.core.model.hibernate; import java.io.Serializable; 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.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.UniqueConstraint; import org.hibernate.annotations.ForeignKey; import org.hibernate.annotations.Index; import org.springmodules.validation.bean.conf.loader.annotation.handler.MaxLength; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotBlank; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotNull; /** * Objecte de domini que representa una camp d'una consulta d'expedients. * * @author Limit Tecnologies <limit@limit.es> */ @Entity @Table(name="hel_consulta_camp", uniqueConstraints={@UniqueConstraint(columnNames={"consulta_id", "camp_codi", "defproc_jbpmkey", "defproc_versio", "tipus"})}) @org.hibernate.annotations.Table( appliesTo = "hel_consulta_camp", indexes = @Index(name = "hel_consultacamp_consulta_i", columnNames = {"consulta_id"})) public class ConsultaCamp implements Serializable, GenericEntity<Long> { public enum TipusConsultaCamp { FILTRE, INFORME, PARAM } public enum TipusParamConsultaCamp { TEXT, SENCER, FLOTANT, DATA, BOOLEAN } private Long id; @NotBlank @MaxLength(64) private String campCodi; @MaxLength(64) private String campDescripcio; @MaxLength(255) private String defprocJbpmKey; private int defprocVersio = -1; @NotNull private TipusConsultaCamp tipus; private TipusParamConsultaCamp paramTipus; private int ordre; @NotNull private Consulta consulta; public ConsultaCamp() {} public ConsultaCamp(String campCodi, TipusConsultaCamp tipus) { this.campCodi = campCodi; this.tipus = tipus; } @Id @GeneratedValue(strategy = GenerationType.TABLE, generator="gen_consulta") @TableGenerator(name="gen_consulta", 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="camp_codi", length=64, nullable=false) public String getCampCodi() { return campCodi; } public void setCampCodi(String campCodi) { this.campCodi = campCodi; } @Column(name="camp_descripcio", length=255, nullable=true) public String getCampDescripcio() { return campDescripcio; } public void setCampDescripcio(String campDescripcio) { this.campDescripcio = campDescripcio; } @Column(name="defproc_jbpmkey", length=255) public String getDefprocJbpmKey() { return defprocJbpmKey; } public void setDefprocJbpmKey(String defprocJbpmKey) { this.defprocJbpmKey = defprocJbpmKey; } @Column(name="defproc_versio") public int getDefprocVersio() { return defprocVersio; } public void setDefprocVersio(int defprocVersio) { this.defprocVersio = defprocVersio; } @Column(name="tipus", nullable=false) public TipusConsultaCamp getTipus() { return tipus; } public void setTipus(TipusConsultaCamp tipus) { this.tipus = tipus; } @Column(name="param_tipus") public TipusParamConsultaCamp getParamTipus() { return paramTipus; } public void setParamTipus(TipusParamConsultaCamp paramTipus) { this.paramTipus = paramTipus; } @Column(name="ordre", nullable=false) public int getOrdre() { return ordre; } public void setOrdre(int ordre) { this.ordre = ordre; } @ManyToOne(optional=false) @JoinColumn(name="consulta_id") @ForeignKey(name="hel_consulta_concamp_fk") public Consulta getConsulta() { return consulta; } public void setConsulta(Consulta consulta) { this.consulta = consulta; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((campCodi == null) ? 0 : campCodi.hashCode()); result = prime * result + ((consulta == null) ? 0 : consulta.hashCode()); result = prime * result + ((defprocJbpmKey == null) ? 0 : defprocJbpmKey.hashCode()); result = prime * result + defprocVersio; result = prime * result + ((tipus == null) ? 0 : tipus.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; ConsultaCamp other = (ConsultaCamp) obj; if (campCodi == null) { if (other.campCodi != null) return false; } else if (!campCodi.equals(other.campCodi)) return false; if (consulta == null) { if (other.consulta != null) return false; } else if (!consulta.equals(other.consulta)) return false; if (defprocJbpmKey == null) { if (other.defprocJbpmKey != null) return false; } else if (!defprocJbpmKey.equals(other.defprocJbpmKey)) return false; if (defprocVersio != other.defprocVersio) return false; if (tipus == null) { if (other.tipus != null) return false; } else if (!tipus.equals(other.tipus)) return false; return true; } private static final long serialVersionUID = 1L; }