package net.conselldemallorca.helium.core.model.hibernate; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.springmodules.validation.bean.conf.loader.annotation.handler.MaxLength; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotBlank; /** * Objecte de domini que representa un permis. * * @author Limit Tecnologies <limit@limit.es> */ @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Table(name="hel_permis") public class Permis implements Serializable, GenericEntity<String> { @NotBlank @MaxLength(64) private String codi; @MaxLength(255) private String descripcio; private Set<Usuari> usuaris = new HashSet<Usuari>(); public Permis() {} public Permis(String codi) { this.codi = codi; } public Permis(String codi, String descripcio) { this.codi = codi; this.descripcio = descripcio; } @Id @Column(name="codi", length=64) public String getCodi() { return this.codi; } public void setCodi(String codi) { this.codi = codi; } @Transient public String getId() { return this.codi; } @Column(name="descripcio", length=255, nullable=true) public String getDescripcio() { return this.descripcio; } public void setDescripcio(String descripcio) { this.descripcio = descripcio; } @ManyToMany(mappedBy="permisos") public Set<Usuari> getUsuaris() { return this.usuaris; } public void setUsuaris(Set<Usuari> usuaris) { this.usuaris = usuaris; } public void addUsuari(Usuari usuari) { getUsuaris().add(usuari); } public void removeUsuari(Usuari usuari) { getUsuaris().remove(usuari); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((codi == null) ? 0 : codi.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; Permis other = (Permis) obj; if (codi == null) { if (other.codi != null) return false; } else if (!codi.equals(other.codi)) return false; return true; } @Override public String toString() { return "Permis codi=" + codi; } private static final long serialVersionUID = 1L; }