/**
*
*/
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 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.NotNull;
/**
* Objecte de domini que representa una validació de dades
*
* @author Limit Tecnologies <limit@limit.es>
*/
@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name="hel_validacio")
@org.hibernate.annotations.Table(
appliesTo = "hel_validacio",
indexes = {
@Index(name = "hel_validacio_tasca_i", columnNames = {"tasca_id"}),
@Index(name = "hel_validacio_camp_i", columnNames = {"camp_id"})})
public class Validacio implements Serializable, GenericEntity<Long> {
private Long id;
@MaxLength(255)
private String nom;
@NotNull
@MaxLength(1024)
private String expressio;
@NotNull
@MaxLength(255)
private String missatge;
int ordre;
private Tasca tasca;
private Camp camp;
public Validacio() {}
public Validacio(Tasca tasca, String expressio, String missatge) {
this.expressio = expressio;
this.missatge = missatge;
this.tasca = tasca;
}
public Validacio(Camp camp, String expressio, String missatge) {
this.expressio = expressio;
this.missatge = missatge;
this.camp = camp;
}
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator="gen_validacio")
@TableGenerator(name="gen_validacio", 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="nom", length=255)
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
@Column(name="expressio", length=1024, nullable=false)
public String getExpressio() {
return expressio;
}
public void setExpressio(String expressio) {
this.expressio = expressio;
}
@Column(name="missatge", length=255, nullable=false)
public String getMissatge() {
return missatge;
}
public void setMissatge(String missatge) {
this.missatge = missatge;
}
@Column(name="ordre", nullable=false)
public int getOrdre() {
return ordre;
}
public void setOrdre(int ordre) {
this.ordre = ordre;
}
@ManyToOne(optional=true)
@JoinColumn(name="tasca_id")
@ForeignKey(name="hel_tasca_validacio_fk")
public Tasca getTasca() {
return tasca;
}
public void setTasca(Tasca tasca) {
this.tasca = tasca;
}
@ManyToOne(optional=true)
@JoinColumn(name="camp_id")
@ForeignKey(name="hel_camp_validacio_fk")
public Camp getCamp() {
return camp;
}
public void setCamp(Camp camp) {
this.camp = camp;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((camp == null) ? 0 : camp.hashCode());
result = prime * result
+ ((expressio == null) ? 0 : expressio.hashCode());
result = prime * result + ((tasca == null) ? 0 : tasca.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;
Validacio other = (Validacio) obj;
if (camp == null) {
if (other.camp != null)
return false;
} else if (!camp.equals(other.camp))
return false;
if (expressio == null) {
if (other.expressio != null)
return false;
} else if (!expressio.equals(other.expressio))
return false;
if (tasca == null) {
if (other.tasca != null)
return false;
} else if (!tasca.equals(other.tasca))
return false;
return true;
}
private static final long serialVersionUID = 1L;
}