/** * */ 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.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; 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 l'estat d'un expedient. * * @author Limit Tecnologies <limit@limit.es> */ @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Table( name="hel_map_sistra", uniqueConstraints={@UniqueConstraint(columnNames={"codiHelium", "expedient_tipus_id"})}) @org.hibernate.annotations.Table( appliesTo = "hel_map_sistra", indexes = @Index(name = "hel_map_sistra_exptip_i", columnNames = {"expedient_tipus_id"})) public class MapeigSistra implements Serializable, GenericEntity<Long> { public enum TipusMapeig { Variable, Document, Adjunt } private Long id; @NotBlank @MaxLength(255) private String codiHelium; @NotBlank @MaxLength(255) private String codiSistra; @NotNull private TipusMapeig tipus; @NotNull private ExpedientTipus expedientTipus; public MapeigSistra() {} public MapeigSistra(ExpedientTipus expedientTipus, String codiHelium, String codiSistra, TipusMapeig tipus) { this.expedientTipus = expedientTipus; this.codiHelium = codiHelium; this.codiSistra = codiSistra; this.tipus = tipus; } @Id @GeneratedValue(strategy = GenerationType.TABLE, generator="gen_map_sistra") @TableGenerator(name="gen_map_sistra", 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="codiHelium", length=255, nullable=false) public String getCodiHelium() { return codiHelium; } public void setCodiHelium(String codiHelium) { this.codiHelium = codiHelium; } @Column(name="codiSistra", length=255, nullable=false) public String getCodiSistra() { return codiSistra; } public void setCodiSistra(String codiSistra) { this.codiSistra = codiSistra; } @Column(name="tipus", length=255, nullable=false) public TipusMapeig getTipus() { return tipus; } public void setTipus(TipusMapeig tipus) { this.tipus = tipus; } /*@Transient public String getTipusAmbNom() { if (expedientTipus == null) return nom; else return expedientTipus.getNom() + "/" + nom; }*/ @ManyToOne(optional=false) @JoinColumn(name="expedient_tipus_id") @ForeignKey(name="hel_exptipus_map_sistra_fk") public ExpedientTipus getExpedientTipus() { return expedientTipus; } public void setExpedientTipus(ExpedientTipus expedientTipus) { this.expedientTipus = expedientTipus; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((codiHelium == null) ? 0 : codiHelium.hashCode()); result = prime * result + ((expedientTipus == null) ? 0 : expedientTipus.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; MapeigSistra other = (MapeigSistra) obj; if (codiHelium == null) { if (other.codiHelium != null) return false; } else if (!codiHelium.equals(other.codiHelium)) return false; if (expedientTipus == null) { if (other.expedientTipus != null) return false; } else if (!expedientTipus.equals(other.expedientTipus)) return false; return true; } private static final long serialVersionUID = 1L; }