package br.com.ec.domain.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Size;
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;
import br.com.ec.domain.dto.PessoaDTO;
import br.com.ec.domain.model.nfe.TipoNotaFiscalInscricaoEstadual;
import br.com.ec.domain.model.tipos.TipoDependentes;
import br.com.ec.domain.model.tipos.TipoEscolaridade;
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
import br.com.ec.domain.model.tipos.TipoPessoa;
import br.com.ec.domain.model.tipos.TipoRacaCor;
import br.com.ec.domain.model.tipos.TipoSexo;
import br.com.ec.web.converters.FormatarUtil;
@
Entity
@Table
(name=
"sec_pessoa", schema=
"sc_sec")
public class Pessoa
implements Serializable {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private String nome
;
private String tipoPessoa
;
private String cpfCnpj
;
private String email
;
private String telefone
;
private String contato
;
private String observacao
;
// PESSOA FÍSICA
private String sexo
;
private String rg
;
private Date rgDataExpedicao
;
private String rgOrgaoEmissor
;
private Date dataNascimento
;
private String nacionalidade
;
private String localNascimento
;
private String ufNascimento
;
private String nomePai
;
private String nomeMae
;
private String tipoEstadoCivil
;
private String tipoRacaCor
;
private String tipoEscolaridade
;
private Boolean pessoaDeficienteMotora
;
private Boolean pessoaDeficienteVisual
;
private Boolean pessoaDeficienteAuditiva
;
private Boolean pessoaReabilitado
;
private String pessoaDeficienteObservacao
;
private String tipoDependendes
;
private String dadosDependentes
;
private Boolean dependentesFinsIRRF
;
private Boolean dependentesFinsSalarioFamilia
;
// PESSOA JURÍDICA
private String nomeFantasia
;
private String razaoSocial
;
private String inscricaoEstadual
;
private String tipoInscricaoEstadual
;
private String inscricaoMunicipal
;
private String tipoRegimeTributario
;
// CLIENTE
private Boolean indicadorNovidades
;
private Boolean cadastroFinalizado
;
private boolean ativo
;
private List<Endereco
> enderecos
;
private List<PessoaPapel
> papeis
;
private Funcionario funcionario
;
public Pessoa
() {
// setTipoPessoa(TipoPessoa.FISICA_F.getValor());
// setInscricaoEstadualIsento(false);
/*
setPapeis(new HashSet<PessoaPapel>());
setEnderecos(new HashSet<Endereco>());
setDadosBancarios(new HashSet<DadosBancarios>());
*/
}
public Pessoa
(PessoaDTO pessoaDTO
) {
this.
sequencial = pessoaDTO.
getSequencial();
this.
nome = pessoaDTO.
getNome();
this.
tipoPessoa = pessoaDTO.
getTipoPessoa();
this.
cpfCnpj = pessoaDTO.
getCpfCnpj();
this.
email = pessoaDTO.
getEmail();
this.
telefone = pessoaDTO.
getTelefone();
this.
contato = pessoaDTO.
getContato();
this.
observacao = pessoaDTO.
getObservacao();
// PESSOA FÍSICA
this.
sexo = pessoaDTO.
getSexo();
this.
rg = pessoaDTO.
getRg();
this.
rgDataExpedicao = pessoaDTO.
getRgDataExpedicao();
this.
rgOrgaoEmissor = pessoaDTO.
getRgOrgaoEmissor();
this.
dataNascimento = pessoaDTO.
getDataNascimento();
this.
nacionalidade = pessoaDTO.
getNacionalidade();
this.
localNascimento = pessoaDTO.
getLocalNascimento();
this.
ufNascimento = pessoaDTO.
getUfNascimento();
this.
nomePai = pessoaDTO.
getNomePai();
this.
nomeMae = pessoaDTO.
getNomeMae();
this.
tipoEstadoCivil = pessoaDTO.
getTipoEstadoCivil();
this.
tipoRacaCor = pessoaDTO.
getTipoRacaCor();
this.
tipoEscolaridade = pessoaDTO.
getTipoEscolaridade();
}
// PESSOA JURÍDICA
/*
this.nomeFantasia = pessoaDTO.getN;
this.razaoSocial = pessoaDTO.;
this.inscricaoEstadual = pessoaDTO.;
this.inscricaoEstadualIsento = pessoaDTO.;
this.inscricaoMunicipal = pessoaDTO.;
this.tipoRegimeTributario = pessoaDTO.;
*/
public Pessoa
(Long sequencialPessoa
) {
this.
sequencial = sequencialPessoa
;
}
@Id
@SequenceGenerator
(name =
"sq_pessoa")
@GeneratedValue
(strategy=GenerationType.
IDENTITY)
@Column
(name=
"seq_pessoa", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@Column
(name=
"dsc_nome")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Nome")
@
NotEmpty(message=
"Obrigatório informar o nome", groups=
{Cadastrar.
class, Alterar.
class})
public String getNome
() {
return nome
;
}
public void setNome
(String nome
) {
this.
nome = StringUtil.
setarUpperCaseComTrim(nome
);
}
@Column
(name=
"tip_pessoa")
public String getTipoPessoa
() {
return tipoPessoa
;
}
public void setTipoPessoa
(String tipoPessoa
) {
this.
tipoPessoa = tipoPessoa
;
}
@Transient
public String getDescricaoDoTipoDaPessoa
() {
return VerificadorUtil.
naoEstaNulo(getTipoPessoa
())? TipoPessoa.
parse(getTipoPessoa
()).
getDescricao() :
null;
}
@Column
(name=
"dsc_cpf_cnpj")
@Size
(max =
20, message =
"Limite de caracteres ultrapassado: CPF/CNPJ")
public String getCpfCnpj
() {
return cpfCnpj
;
}
public void setCpfCnpj
(String cpfCnpj
) {
this.
cpfCnpj = cpfCnpj
;
}
@Column
(name=
"dsc_email")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Email")
public String getEmail
() {
return email
;
}
public void setEmail
(String email
) {
this.
email = StringUtil.
setarLowerCase(email
);
}
@Column
(name=
"dsc_telefone")
@Size
(max =
11, message =
"Limite de caracteres ultrapassado: Telefone")
public String getTelefone
() {
return telefone
;
}
public void setTelefone
(String telefone
) {
this.
telefone = telefone
;
}
@Column
(name=
"dsc_contato")
public String getContato
() {
return contato
;
}
public void setContato
(String contato
) {
this.
contato = contato
;
}
@Column
(name=
"dsc_observacao")
@Size
(max =
240, message =
"Limite de caracteres ultrapassado: Observação")
public String getObservacao
() {
return observacao
;
}
public void setObservacao
(String observacao
) {
this.
observacao = StringUtil.
setarUpperCaseComTrim(observacao
);
}
/*
@Valid
@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
public Set<PessoaPapel> getPapeis() {
return papeis;
}
public void setPapeis(Set<PessoaPapel> papeis) {
this.papeis = papeis;
}
*/
@Column
(name=
"tip_sexo")
public String getSexo
() {
return sexo
;
}
public void setSexo
(String sexo
) {
this.
sexo = sexo
;
}
@Transient
public String getDescricaoDoSexo
() {
return VerificadorUtil.
naoEstaNulo(getSexo
())? TipoSexo.
parse(getSexo
()).
getDescricao() :
null;
}
@Column
(name=
"dsc_rg")
@Size
(max =
20, message =
"Limite de caracteres ultrapassado: RG")
public String getRg
() {
return rg
;
}
public void setRg
(String rg
) {
this.
rg = rg
;
}
@Column
(name=
"dsc_rg_orgaoemissor")
@Size
(max =
10, message =
"Limite de caracteres ultrapassado: Orgão Emissor do RG")
public String getRgOrgaoEmissor
() {
return rgOrgaoEmissor
;
}
public void setRgOrgaoEmissor
(String rgOrgaoEmissor
) {
this.
rgOrgaoEmissor = StringUtil.
setarUpperCaseComTrim(rgOrgaoEmissor
);
}
@Column
(name=
"dsc_rg_dataexpedicao")
public Date getRgDataExpedicao
() {
return rgDataExpedicao
;
}
public void setRgDataExpedicao
(Date rgDataExpedicao
) {
this.
rgDataExpedicao = rgDataExpedicao
;
}
@Transient
public String getRgDataExpedicaoFormatada
() {
return VerificadorUtil.
naoEstaNulo(getRgDataExpedicao
())? FormatarUtil.
retornarDataFormatada(getRgDataExpedicao
()) :
"";
}
@Column
(name=
"dat_nascimento")
public Date getDataNascimento
() {
return dataNascimento
;
}
public void setDataNascimento
(Date dataNascimento
) {
this.
dataNascimento = dataNascimento
;
}
@Transient
public String getDataNascimentoFormatada
() {
return VerificadorUtil.
naoEstaNulo(getDataNascimento
())? FormatarUtil.
retornarDataFormatada(getDataNascimento
()) :
"";
}
@Column
(name=
"dsc_nacionalidade")
@Size
(max =
20, message =
"Limite de caracteres ultrapassado: Nacionalidade")
public String getNacionalidade
() {
return nacionalidade
;
}
public void setNacionalidade
(String nacionalidade
) {
this.
nacionalidade = StringUtil.
setarUpperCaseComTrim(nacionalidade
);
}
@Column
(name=
"dsc_nascimento_local")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Local do Nascimento")
public String getLocalNascimento
() {
return localNascimento
;
}
public void setLocalNascimento
(String localNascimento
) {
this.
localNascimento = StringUtil.
setarUpperCaseComTrim(localNascimento
);
}
@Column
(name=
"dsc_nascimento_uf")
@Size
(max =
2, message =
"Limite de caracteres ultrapassado: UF do Nascimento")
public String getUfNascimento
() {
return ufNascimento
;
}
public void setUfNascimento
(String ufNascimento
) {
this.
ufNascimento = StringUtil.
setarUpperCaseComTrim(ufNascimento
);
}
@Column
(name=
"dsc_nome_pai")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Nome do Pai")
public String getNomePai
() {
return nomePai
;
}
public void setNomePai
(String nomePai
) {
this.
nomePai = StringUtil.
setarUpperCaseComTrim(nomePai
);
}
@Column
(name=
"dsc_nome_mae")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Nome da Mãe")
public String getNomeMae
() {
return nomeMae
;
}
public void setNomeMae
(String nomeMae
) {
this.
nomeMae = StringUtil.
setarUpperCaseComTrim(nomeMae
);
}
@Column
(name=
"tip_estado_civil")
public String getTipoEstadoCivil
() {
return tipoEstadoCivil
;
}
public void setTipoEstadoCivil
(String tipoEstadoCivil
) {
this.
tipoEstadoCivil = tipoEstadoCivil
;
}
@Transient
public String getDescricaoDoEstadoCivil
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? TipoEstadoCivil.
parse(getTipoEstadoCivil
()).
getDescricao() :
null;
}
@Column
(name=
"tip_raca_cor")
public String getTipoRacaCor
() {
return tipoRacaCor
;
}
public void setTipoRacaCor
(String tipoRacaCor
) {
this.
tipoRacaCor = tipoRacaCor
;
}
@Transient
public String getDescricaoDaRacaCor
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? TipoRacaCor.
parse(getTipoRacaCor
()).
getDescricao() :
null;
}
@Column
(name=
"tip_escolaridade")
public String getTipoEscolaridade
() {
return tipoEscolaridade
;
}
public void setTipoEscolaridade
(String tipoEscolaridade
) {
this.
tipoEscolaridade = tipoEscolaridade
;
}
@Transient
public String getDescricaoDaEscolaridade
() {
return VerificadorUtil.
naoEstaNulo(getTipoEscolaridade
())? TipoEscolaridade.
parse(getTipoEscolaridade
()).
getDescricao() :
null;
}
@Column
(name=
"ind_deficiente_motora")
public Boolean getPessoaDeficienteMotora
() {
return pessoaDeficienteMotora
;
}
public void setPessoaDeficienteMotora
(Boolean pessoaDeficienteMotora
) {
this.
pessoaDeficienteMotora = pessoaDeficienteMotora
;
}
@Column
(name=
"ind_deficiente_visual")
public Boolean getPessoaDeficienteVisual
() {
return pessoaDeficienteVisual
;
}
public void setPessoaDeficienteVisual
(Boolean pessoaDeficienteVisual
) {
this.
pessoaDeficienteVisual = pessoaDeficienteVisual
;
}
@Column
(name=
"ind_deficiente_auditiva")
public Boolean getPessoaDeficienteAuditiva
() {
return pessoaDeficienteAuditiva
;
}
public void setPessoaDeficienteAuditiva
(Boolean pessoaDeficienteAuditiva
) {
this.
pessoaDeficienteAuditiva = pessoaDeficienteAuditiva
;
}
@Column
(name=
"ind_reabilitado")
public Boolean getPessoaReabilitado
() {
return pessoaReabilitado
;
}
public void setPessoaReabilitado
(Boolean pessoaReabilitado
) {
this.
pessoaReabilitado = pessoaReabilitado
;
}
@Column
(name=
"dsc_deficiente_observacao")
@Size
(max =
200, message =
"Limite de caracteres ultrapassado: OBSERVAÇÕES DA DEFICIÊNCIA")
public String getPessoaDeficienteObservacao
() {
return pessoaDeficienteObservacao
;
}
public void setPessoaDeficienteObservacao
(String pessoaDeficienteObservacao
) {
this.
pessoaDeficienteObservacao = StringUtil.
setarUpperCaseComTrim(pessoaDeficienteObservacao
);;
}
@Column
(name=
"tip_dependentes")
public String getTipoDependendes
() {
return tipoDependendes
;
}
public void setTipoDependendes
(String tipoDependendes
) {
this.
tipoDependendes = tipoDependendes
;
}
@Transient
public String getDescricaoTipoDependentes
() {
return VerificadorUtil.
naoEstaNulo(getTipoDependendes
())? TipoDependentes.
parse(getTipoDependendes
()).
getDescricao() :
null;
}
@Column
(name=
"dsc_dados_dependentes")
@Size
(max =
400, message =
"Limite de caracteres ultrapassado: DADOS DOS DEPENDENTES")
public String getDadosDependentes
() {
return dadosDependentes
;
}
public void setDadosDependentes
(String dadosDependentes
) {
this.
dadosDependentes = StringUtil.
setarUpperCaseComTrim(dadosDependentes
);
}
@Column
(name=
"ind_dependentes_irrf")
public Boolean getDependentesFinsIRRF
() {
return dependentesFinsIRRF
;
}
public void setDependentesFinsIRRF
(Boolean dependentesFinsIRRF
) {
this.
dependentesFinsIRRF = dependentesFinsIRRF
;
}
@Column
(name=
"ind_dependentes_salariofamilia")
public Boolean getDependentesFinsSalarioFamilia
() {
return dependentesFinsSalarioFamilia
;
}
public void setDependentesFinsSalarioFamilia
(Boolean dependentesFinsSalarioFamilia
) {
this.
dependentesFinsSalarioFamilia = dependentesFinsSalarioFamilia
;
}
@Column
(name=
"dsc_nome_fantasia")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Nome Fantasia")
public String getNomeFantasia
() {
return nomeFantasia
;
}
public void setNomeFantasia
(String nomeFantasia
) {
this.
nomeFantasia = StringUtil.
setarUpperCaseComTrim(nomeFantasia
);
}
@Column
(name=
"dsc_razao_social")
@Size
(max =
240, message =
"Limite de caracteres ultrapassado: Razão Social")
public String getRazaoSocial
() {
return razaoSocial
;
}
public void setRazaoSocial
(String razaoSocial
) {
this.
razaoSocial = StringUtil.
setarUpperCaseComTrim(razaoSocial
);
}
@Column
(name=
"dsc_inscricao_estadual")
@Size
(max =
15, message =
"Limite de caracteres ultrapassado: Inscrição Estadual")
public String getInscricaoEstadual
() {
return inscricaoEstadual
;
}
public void setInscricaoEstadual
(String inscricaoEstadual
) {
this.
inscricaoEstadual = inscricaoEstadual
;
}
@Column
(name=
"tip_inscricao_estadual")
public String getTipoInscricaoEstadual
() {
return tipoInscricaoEstadual
;
}
public void setTipoInscricaoEstadual
(String tipoInscricaoEstadual
) {
this.
tipoInscricaoEstadual = tipoInscricaoEstadual
;
}
@Transient
public String getNomenclaturaTipoInscricaoEstadual
() {
return VerificadorUtil.
naoEstaNulo(getTipoInscricaoEstadual
())? TipoNotaFiscalInscricaoEstadual.
parse(getTipoInscricaoEstadual
()).
getNomenclaturaNotaFiscal() :
"";
}
@Column
(name=
"dsc_inscricao_municipal")
@Size
(max =
15, message =
"Limite de caracteres ultrapassado: Inscrição Municipal")
public String getInscricaoMunicipal
() {
return inscricaoMunicipal
;
}
public void setInscricaoMunicipal
(String inscricaoMunicipal
) {
this.
inscricaoMunicipal = inscricaoMunicipal
;
}
@Column
(name=
"tip_regime_tributario")
public String getTipoRegimeTributario
() {
return tipoRegimeTributario
;
}
public void setTipoRegimeTributario
(String tipoRegimeTributario
) {
this.
tipoRegimeTributario = tipoRegimeTributario
;
}
/*
@ManyToOne
@ForeignKey(name="fk_pessoa_modelo")
@JoinColumn(name = "seq_modelo_cliente", nullable=true)
public Modelo getModeloCliente() {
return modeloCliente;
}
public void setModeloCliente(Modelo modeloCliente) {
this.modeloCliente = modeloCliente;
}
*/
@Column
(name=
"ind_novidades")
public Boolean getIndicadorNovidades
() {
return indicadorNovidades
;
}
public void setIndicadorNovidades
(Boolean indicadorNovidades
) {
this.
indicadorNovidades = indicadorNovidades
;
}
/*
@Valid
@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, orphanRemoval=true)
public Set<DadosBancarios> getDadosBancarios() {
return dadosBancarios;
}
public void setDadosBancarios(Set<DadosBancarios> dadosBancarios) {
this.dadosBancarios = dadosBancarios;
}
*/
@Column
(name=
"ind_cadastro_finalizado", nullable=
false)
public Boolean getCadastroFinalizado
() {
return cadastroFinalizado
;
}
public void setCadastroFinalizado
(Boolean cadastroFinalizado
) {
this.
cadastroFinalizado = cadastroFinalizado
;
}
@Column
(name=
"ind_ativo", nullable=
false)
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
@OneToMany
(mappedBy=
"pessoa", cascade=CascadeType.
ALL, fetch=FetchType.
LAZY, orphanRemoval=
true)
public List<Endereco
> getEnderecos
() {
return enderecos
;
}
public void setEnderecos
(List<Endereco
> enderecos
) {
this.
enderecos = enderecos
;
}
@OneToMany
(mappedBy=
"pessoa", cascade=CascadeType.
ALL, fetch=FetchType.
EAGER, orphanRemoval=
true)
public List<PessoaPapel
> getPapeis
() {
return papeis
;
}
public void setPapeis
(List<PessoaPapel
> papeis
) {
this.
papeis = papeis
;
}
@Transient
public Funcionario getFuncionario
() {
return funcionario
;
}
public void setFuncionario
(Funcionario funcionario
) {
this.
funcionario = funcionario
;
}
/*******************************************************/
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((sequencial ==
null) ? 0 : sequencial.
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;
Pessoa other =
(Pessoa
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
@Transient
public Boolean ehTipoPessoaFisica
() {
return getTipoPessoa
().
equals(TipoPessoa.
FISICA_F.
getValor());
}
@Transient
public Boolean ehTipoPessoaJuridica
() {
return getTipoPessoa
().
equals(TipoPessoa.
JURIDICA_J.
getValor());
}
@Transient
public String getCpfCnpjFormatado
() {
return VerificadorUtil.
naoEstaNulo(getCpfCnpj
())? FormatarUtil.
retornarCpfCnpjFormatado(getCpfCnpj
()) :
"";
}
@Transient
public Endereco getEnderecoPrincipal
() {
ArrayList<Endereco
> enderecos =
new ArrayList<>(getEnderecos
());
return VerificadorUtil.
isListaNulaOuVazia(enderecos
)? null : enderecos.
get(0);
}
@Transient
public Boolean getEstadoCivilEhSolteiro
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
SOLTEIRO_S.
getValor()) :
false;
}
@Transient
public Boolean getEstadoCivilEhCasado
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
CASADO_C.
getValor()) :
false;
}
@Transient
public Boolean getEstadoCivilEhDivorciado
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
DIVORCIADO_D.
getValor()) :
false;
}
@Transient
public Boolean getEstadoCivilEhViuvo
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
VIUVO_V.
getValor()) :
false;
}
@Transient
public Boolean getEstadoCivilEhUniaoEstavel
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
UNIAO_ESTAVEL_U.
getValor()) :
false;
}
@Transient
public Boolean getEstadoCivilEhOutros
() {
return VerificadorUtil.
naoEstaNulo(getTipoEstadoCivil
())? getTipoEstadoCivil
().
equals(TipoEstadoCivil.
OUTROS_O.
getValor()) :
false;
}
@Transient
public Boolean getSexoEhMasculino
() {
return VerificadorUtil.
naoEstaNulo(getSexo
())? getSexo
().
equals(TipoSexo.
MASCULINO.
getValor()) :
false;
}
@Transient
public Boolean getSexoEhFeminino
() {
return VerificadorUtil.
naoEstaNulo(getSexo
())? getSexo
().
equals(TipoSexo.
FEMININO.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhIndigena
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
INDIGENA.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhBranca
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
BRANCA.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhNegra
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
NEGRA.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhAmarela
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
AMARELA.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhParda
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
PARDA.
getValor()) :
false;
}
@Transient
public Boolean getRacaCorEhNaoInformada
() {
return VerificadorUtil.
naoEstaNulo(getTipoRacaCor
())? getTipoRacaCor
().
equals(TipoRacaCor.
NAO_INFORMADA.
getValor()) :
false;
}
@Transient
public Endereco primeiroEndereco
() {
if (!VerificadorUtil.
isListaNulaOuVazia(getEnderecos
())) {
return getEnderecos
().
get(0);
}
return null;
}
@Transient
public void atualizarEndereco
(Endereco endereco
) {
if (VerificadorUtil.
isListaNulaOuVazia(getEnderecos
())) {
List<Endereco
> enderecos =
new ArrayList<Endereco
>();
endereco.
setPessoa(this);
enderecos.
add(endereco
);
setEnderecos
(enderecos
);
} else {
int localizacao = getEnderecos
().
indexOf(endereco
);
if (localizacao
> -
1) {
getEnderecos
().
remove(localizacao
);
}
getEnderecos
().
add(endereco
);
}
}
}