1 package org.ufcspa.simdecs.entities;
\r
3 import java.io.Serializable;
\r
4 import java.util.Collection;
\r
5 import java.util.Date;
\r
6 import java.util.List;
\r
8 import javax.persistence.Column;
\r
9 import javax.persistence.Entity;
\r
10 import javax.persistence.GeneratedValue;
\r
11 import javax.persistence.GenerationType;
\r
12 import javax.persistence.Id;
\r
13 import javax.persistence.JoinColumn;
\r
14 import javax.persistence.JoinTable;
\r
15 import javax.persistence.ManyToMany;
\r
16 import javax.persistence.ManyToOne;
\r
17 import javax.persistence.SequenceGenerator;
\r
18 import javax.persistence.Table;
\r
19 import javax.persistence.Temporal;
\r
20 import javax.persistence.TemporalType;
\r
21 import javax.persistence.UniqueConstraint;
\r
23 import org.hibernate.annotations.Index;
\r
24 import org.ufcspa.simdecs.entities.exceptions.InvalidSexoException;
\r
27 // Short name: "usu"
\r
28 @Table(name="Usuario")
\r
29 @SequenceGenerator(name = "sequenceUsuario", sequenceName = "sqUsuario", initialValue = 1, allocationSize=1)
\r
30 public class Usuario implements Serializable {
\r
32 private static final long serialVersionUID = 3970972520019742992L;
\r
34 @GeneratedValue(generator = "sequenceUsuario", strategy = GenerationType.AUTO)
\r
38 @Column(length=30, nullable=false, unique=true)
\r
39 private String login;
\r
41 @Column(length=20, nullable=false)
\r
42 private String senha;
\r
44 @Column(length=70, nullable=false)
\r
45 private String nome;
\r
47 @Column(length=40, nullable=false, unique=true)
\r
48 private String email;
\r
51 private String funcao;
\r
53 @Column(length=1, nullable=true)
\r
54 private String sexo;
\r
56 @Column(length=20, nullable=true)
\r
57 private String telefone;
\r
59 @Temporal(TemporalType.DATE)
\r
60 private Date dataNascimento;
\r
62 @Column(length=1, nullable=false)
\r
63 private boolean aprovado;
\r
65 @Column(length=1, nullable=false)
\r
66 private boolean ativo;
\r
68 @Temporal(TemporalType.DATE)
\r
69 private Date dataCriacao;
\r
72 @JoinColumn(name = "usu_id", referencedColumnName = "id", nullable = true)
\r
73 @Index(name="usu_usu_fk_i")
\r
74 private Usuario criadoPor;
\r
77 @JoinTable( name = "UsuarioGrupo",
\r
78 joinColumns = {@JoinColumn(name = "usu_id")},
\r
79 inverseJoinColumns = {@JoinColumn(name = "gru_id")},
\r
80 uniqueConstraints={@UniqueConstraint(columnNames={"usu_id", "gru_id"})})
\r
81 private List<Grupo> grupos;
\r
83 public Long getId() {
\r
87 public void setId(Long id) {
\r
91 public String getLogin() {
\r
95 public void setLogin(String login) {
\r
99 public String getSenha() {
\r
103 public void setSenha(String senha) {
\r
104 this.senha = senha;
\r
107 public String getNome() {
\r
111 public void setNome(String nome) {
\r
115 public String getEmail() {
\r
119 public void setEmail(String email) {
\r
120 this.email = email;
\r
123 public String getFuncao() {
\r
127 public void setFuncao(String funcao) {
\r
128 this.funcao = funcao;
\r
131 public String getSexo() {
\r
135 public void setSexo(String sexo) throws InvalidSexoException {
\r
136 if (sexo.equals("F") || sexo.equals("M"))
\r
139 throw new InvalidSexoException("O sexo deverá ser 'F' ou 'M'!");
\r
142 public String getTelefone() {
\r
146 public void setTelefone(String telefone) {
\r
147 this.telefone = telefone;
\r
150 public Date getDataNascimento() {
\r
151 return dataNascimento;
\r
154 public void setDataNascimento(Date dataNascimento) {
\r
155 this.dataNascimento = dataNascimento;
\r
158 public boolean isAprovado() {
\r
162 public void setAprovado(boolean aprovado) {
\r
163 this.aprovado = aprovado;
\r
166 public boolean isAtivo() {
\r
170 public void setAtivo(boolean ativo) {
\r
171 this.ativo = ativo;
\r
174 public Date getDataCriacao() {
\r
175 return dataCriacao;
\r
178 public void setDataCriacao(Date dataCriacao) {
\r
179 this.dataCriacao = dataCriacao;
\r
182 public Usuario getCriadoPor() {
\r
186 public void setCriadoPor(Usuario criadoPor) {
\r
187 this.criadoPor = criadoPor;
\r
190 public List<Grupo> getGrupos() {
\r
194 public void setGrupos(List<Grupo> grupos) {
\r
195 this.grupos = grupos;
\r
199 public int hashCode() {
\r
200 final int prime = 31;
\r
202 result = prime * result + ((id == null) ? 0 : id.hashCode());
\r
207 public boolean equals(Object obj) {
\r
212 if (getClass() != obj.getClass())
\r
214 Usuario other = (Usuario) obj;
\r
216 if (other.id != null)
\r
218 } else if (!id.equals(other.id))
\r