--- /dev/null
+package org.ufcspa.simdecs.entities;\r
+\r
+import java.io.Serializable;\r
+import java.util.Collection;\r
+import java.util.Date;\r
+\r
+import javax.persistence.Column;\r
+import javax.persistence.Entity;\r
+import javax.persistence.GeneratedValue;\r
+import javax.persistence.GenerationType;\r
+import javax.persistence.Id;\r
+import javax.persistence.JoinColumn;\r
+import javax.persistence.JoinTable;\r
+import javax.persistence.ManyToMany;\r
+import javax.persistence.ManyToOne;\r
+import javax.persistence.SequenceGenerator;\r
+import javax.persistence.Table;\r
+import javax.persistence.Temporal;\r
+import javax.persistence.TemporalType;\r
+import javax.persistence.UniqueConstraint;\r
+\r
+import org.hibernate.annotations.Index;\r
+import org.ufcspa.simdecs.entities.exceptions.InvalidSexoException;\r
+\r
+@Entity\r
+// Short name: "usu"\r
+@Table(name="Usuario")\r
+@SequenceGenerator(name = "sequenceUsuario", sequenceName = "sqUsuario", initialValue = 1, allocationSize=1)\r
+public class Usuario implements Serializable {\r
+ \r
+ private static final long serialVersionUID = 3970972520019742992L;\r
+\r
+ @GeneratedValue(generator = "sequenceUsuario", strategy = GenerationType.AUTO)\r
+ @Id\r
+ private Long id;\r
+ \r
+ @Column(length=30, nullable=false, unique=true)\r
+ private String login;\r
+ \r
+ @Column(length=20, nullable=false)\r
+ private String senha;\r
+ \r
+ @Column(length=70, nullable=false)\r
+ private String nome;\r
+\r
+ @Column(length=40, nullable=false, unique=true)\r
+ private String email;\r
+ \r
+ @Column(length=100)\r
+ private String funcao;\r
+ \r
+ @Column(length=1, nullable=true)\r
+ private String sexo;\r
+ \r
+ @Column(length=20, nullable=true)\r
+ private String telefone;\r
+ \r
+ @Temporal(TemporalType.DATE)\r
+ private Date dataNascimento;\r
+ \r
+ @Column(length=1, nullable=false)\r
+ private boolean aprovado;\r
+ \r
+ @Column(length=1, nullable=false)\r
+ private boolean ativo;\r
+ \r
+ @Temporal(TemporalType.DATE)\r
+ private Date dataCriacao;\r
+ \r
+ @ManyToOne\r
+ @JoinColumn(name = "usu_id", referencedColumnName = "id", nullable = true)\r
+ @Index(name="usu_usu_fk_i")\r
+ private Usuario criadoPor;\r
+\r
+ @ManyToMany\r
+ @JoinTable( name = "UsuarioGrupo",\r
+ joinColumns = {@JoinColumn(name = "usu_id")},\r
+ inverseJoinColumns = {@JoinColumn(name = "gru_id")},\r
+ uniqueConstraints={@UniqueConstraint(columnNames={"usu_id", "gru_id"})})\r
+ private Collection<Grupo> grupos;\r
+\r
+ public Long getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(Long id) {\r
+ this.id = id;\r
+ }\r
+\r
+ public String getLogin() {\r
+ return login;\r
+ }\r
+\r
+ public void setLogin(String login) {\r
+ this.login = login;\r
+ }\r
+\r
+ public String getSenha() {\r
+ return senha;\r
+ }\r
+\r
+ public void setSenha(String senha) {\r
+ this.senha = senha;\r
+ }\r
+\r
+ public String getNome() {\r
+ return nome;\r
+ }\r
+\r
+ public void setNome(String nome) {\r
+ this.nome = nome;\r
+ }\r
+\r
+ public String getEmail() {\r
+ return email;\r
+ }\r
+\r
+ public void setEmail(String email) {\r
+ this.email = email;\r
+ }\r
+\r
+ public String getFuncao() {\r
+ return funcao;\r
+ }\r
+\r
+ public void setFuncao(String funcao) {\r
+ this.funcao = funcao;\r
+ }\r
+\r
+ public String getSexo() {\r
+ return sexo;\r
+ }\r
+\r
+ public void setSexo(String sexo) throws InvalidSexoException {\r
+ if (sexo.equals("F") || sexo.equals("M"))\r
+ this.sexo = sexo;\r
+ else\r
+ throw new InvalidSexoException("O sexo deverá ser 'F' ou 'M'!");\r
+ }\r
+\r
+ public String getTelefone() {\r
+ return telefone;\r
+ }\r
+\r
+ public void setTelefone(String telefone) {\r
+ this.telefone = telefone;\r
+ }\r
+\r
+ public Date getDataNascimento() {\r
+ return dataNascimento;\r
+ }\r
+\r
+ public void setDataNascimento(Date dataNascimento) {\r
+ this.dataNascimento = dataNascimento;\r
+ }\r
+\r
+ public boolean isAprovado() {\r
+ return aprovado;\r
+ }\r
+\r
+ public void setAprovado(boolean aprovado) {\r
+ this.aprovado = aprovado;\r
+ }\r
+\r
+ public boolean isAtivo() {\r
+ return ativo;\r
+ }\r
+\r
+ public void setAtivo(boolean ativo) {\r
+ this.ativo = ativo;\r
+ }\r
+\r
+ public Date getDataCriacao() {\r
+ return dataCriacao;\r
+ }\r
+\r
+ public void setDataCriacao(Date dataCriacao) {\r
+ this.dataCriacao = dataCriacao;\r
+ }\r
+\r
+ public Usuario getCriadoPor() {\r
+ return criadoPor;\r
+ }\r
+\r
+ public void setCriadoPor(Usuario criadoPor) {\r
+ this.criadoPor = criadoPor;\r
+ }\r
+\r
+ public Collection<Grupo> getGrupos() {\r
+ return grupos;\r
+ }\r
+\r
+ public void setGrupos(Collection<Grupo> grupos) {\r
+ this.grupos = grupos;\r
+ }\r
+\r
+ @Override\r
+ public int hashCode() {\r
+ final int prime = 31;\r
+ int result = 1;\r
+ result = prime * result + ((id == null) ? 0 : id.hashCode());\r
+ return result;\r
+ }\r
+\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (this == obj)\r
+ return true;\r
+ if (obj == null)\r
+ return false;\r
+ if (getClass() != obj.getClass())\r
+ return false;\r
+ Usuario other = (Usuario) obj;\r
+ if (id == null) {\r
+ if (other.id != null)\r
+ return false;\r
+ } else if (!id.equals(other.id))\r
+ return false;\r
+ return true;\r
+ }\r
+ \r
+}\r