Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.domain.model;
import java.io.File;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.persistence.CascadeType;
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.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.servlet.ServletContext;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.validator.constraints.NotEmpty;
import br.com.ec.core.interfaces.Alterar;
import br.com.ec.core.interfaces.Cadastrar;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
@
Entity
@Table
(name=
"sec_usuario", schema=
"sc_sec")
public class Usuario
implements Serializable {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private Pessoa pessoa
;
private String nome
;
private String login
;
private String senha
;
private Date ultimoAcesso
;
private boolean ativo
;
private List<UsuarioPerfil
> perfis
;
private List<UsuarioLoja
> lojas
;
// private List<Parametro> parametros;
@Id
@SequenceGenerator
(name =
"sq_usuario")
@GeneratedValue
(strategy = GenerationType.
IDENTITY)
@Column
(name=
"seq_usuario", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@OneToOne
@ForeignKey
(name=
"fk_usuario_pessoa")
@NotNull
(message=
"Obrigatório informar a pessoa", groups=
{Cadastrar.
class, Alterar.
class})
@JoinColumn
(name=
"seq_pessoa", referencedColumnName=
"seq_pessoa", nullable=
false)
public Pessoa getPessoa
() {
return pessoa
;
}
public void setPessoa
(Pessoa pessoa
) {
this.
pessoa = pessoa
;
}
@Column
(name=
"dsc_nome")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Nome")
public String getNome
() {
return nome
;
}
public void setNome
(String nome
) {
this.
nome = StringUtil.
setarUpperCaseComTrim(nome
);
}
@Column
(name=
"dsc_login", nullable=
false)
@Size
(max =
32, message =
"Limite de caracteres ultrapassado: Login")
@
NotEmpty(message=
"Obrigatório informar o login", groups=
{Cadastrar.
class, Alterar.
class})
public String getLogin
() {
return login
;
}
public void setLogin
(String login
) {
this.
login = login
;
}
@Column
(name=
"dsc_senha", nullable=
false)
@Size
(max =
32, message =
"Limite de caracteres ultrapassado: Senha")
@
NotEmpty(message=
"Obrigatório informar a senha", groups=
{Cadastrar.
class, Alterar.
class})
public String getSenha
() {
return senha
;
}
public void setSenha
(String senha
) {
this.
senha = senha
;
}
@Column
(name=
"dth_ultimo_acesso")
public Date getUltimoAcesso
() {
return ultimoAcesso
;
}
public void setUltimoAcesso
(Date ultimoAcesso
) {
this.
ultimoAcesso = ultimoAcesso
;
}
@Column
(name=
"ind_ativo", nullable=
false)
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
@OneToMany
(mappedBy=
"usuario", cascade=CascadeType.
ALL, orphanRemoval=
true)
public List<UsuarioPerfil
> getPerfis
() {
return perfis
;
}
public void setPerfis
(List<UsuarioPerfil
> perfis
) {
this.
perfis = perfis
;
}
@OneToMany
(mappedBy=
"usuario", cascade=CascadeType.
ALL, orphanRemoval=
true)
public List<UsuarioLoja
> getLojas
() {
return lojas
;
}
public void setLojas
(List<UsuarioLoja
> lojas
) {
this.
lojas = lojas
;
}
/*
@Transient
public List<Parametro> getParametros() {
return parametros;
}
public void setParametros(List<Parametro> parametros) {
this.parametros = parametros;
}
*/
@Transient
public String getNomeDaPessoa
() {
return VerificadorUtil.
naoEstaNulo(pessoa
)? pessoa.
getNome() :
null;
}
@Transient
public Long getSequencialDaPessoa
() {
return VerificadorUtil.
naoEstaNulo(pessoa
)? pessoa.
getSequencial() :
null;
}
@Transient
public Boolean verificarSeTemFoto
() {
File foto =
new File(getCaminhoPastaFotos
() +
"user" + getSequencial
() +
".jpg");
return foto.
exists();
}
@Transient
public String getCaminhoPastaFotos
() {
ServletContext servletContext =
(ServletContext
) FacesContext.
getCurrentInstance().
getExternalContext().
getContext();
return servletContext.
getRealPath("") +
File.
separator +
"imagens" +
File.
separator +
"usuarios" +
File.
separator;
}
}