package br.gov.al.saude.test.builder;
import java.util.Set;
import br.gov.al.saude.framework.core.util.DataUtils;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.framework.model.PessoaFisicaView;
import br.gov.al.saude.framework.model.UsuarioView;
import br.gov.al.saude.srv.model.Deficiencia;
import br.gov.al.saude.srv.model.GrauInstrucao;
import br.gov.al.saude.srv.model.Nacionalidade;
import br.gov.al.saude.srv.model.Servidor;
import br.gov.al.saude.srv.model.ServidorContaBancaria;
import br.gov.al.saude.srv.model.ServidorDadoFuncional;
import br.gov.al.saude.srv.model.ServidorDependente;
import br.gov.al.saude.srv.model.ServidorLocalizacaoArquivo;
import br.gov.al.saude.srv.model.ServidorQualificacao;
import br.gov.al.saude.test.unidade.generic.builder.AbstractEntidadeBuilder;
public class ServidorBuilder
extends AbstractEntidadeBuilder
<Servidor
> {
@
Override
protected void inicializarDadosDefault
() {
entidade =
new Servidor
();
}
public ServidorBuilder
(Servidor servidor
) {
if(VerificadorUtil.
naoEstaNuloOuVazio(servidor
)) {
entidade = servidor
;
} else {
inicializarDadosDefault
();
}
}
public ServidorBuilder
() {
super();
}
public ServidorBuilder comSequencial
(String sequencialPessoa
) {
entidade.
getPessoa().
setSequencialPessoa(parseLong
(sequencialPessoa
));
return this;
}
public ServidorBuilder comObservacao
(String observacao
) {
entidade.
setObservacao(observacao
);
return this;
}
public ServidorBuilder comTipoSituacaoCadastral
(String tipoSituacaoCadastral
) {
entidade.
setTipoSituacaoCadastral(tipoSituacaoCadastral
);
return this;
}
public ServidorBuilder comGrauInstrucao
(GrauInstrucao grauInstrucao
) {
entidade.
setGrauInstrucao(grauInstrucao
);
return this;
}
public ServidorBuilder comDeficiencia
(Deficiencia deficiencia
) {
entidade.
setDeficiencia(deficiencia
);
return this;
}
public ServidorBuilder comUsuarioCadastro
(String sequencialUsuario
) {
if(VerificadorUtil.
naoEstaNuloOuVazio(sequencialUsuario
)) {
entidade.
setUsuario(new UsuarioViewBuilder
().
comSequencial(sequencialUsuario
).
build());
}
return this;
}
public ServidorBuilder comUsuarioAlteracaoSituacaoCadastral
(UsuarioView usuario
) {
entidade.
setUsuarioAlteracaoSituacaoCadastral(usuario
);
return this;
}
public ServidorBuilder comUsuarioAlteracaoSituacaoCadastral
(String sequencialUsuario
) {
if(VerificadorUtil.
naoEstaNuloOuVazio(sequencialUsuario
)) {
entidade.
setUsuarioAlteracaoSituacaoCadastral(new UsuarioViewBuilder
().
comSequencial(sequencialUsuario
).
build());
}
return this;
}
public ServidorBuilder comNacionalidade
(Nacionalidade nacionalidade
) {
entidade.
setNacionalidade(nacionalidade
);
return this;
}
public ServidorBuilder comDadoFuncional
(Set<ServidorDadoFuncional
> dadosFuncionais
) {
if(VerificadorUtil.
naoEstaNuloOuVazio(dadosFuncionais
)) {
for(ServidorDadoFuncional servidorDadoFuncional : dadosFuncionais
) {
servidorDadoFuncional.
setServidor(entidade
);
}
entidade.
setListaServidorDadoFuncional(dadosFuncionais
);
}
return this;
}
public ServidorBuilder comQualificacao
(Set<ServidorQualificacao
> qualificacoes
) {
if (VerificadorUtil.
naoEstaNuloOuVazio(qualificacoes
)) {
for (ServidorQualificacao servidorQualificacao : qualificacoes
) {
servidorQualificacao.
setServidor(entidade
);
}
entidade.
setListaServidorQualificacao(qualificacoes
);
}
return this;
}
public ServidorBuilder comDependente
(Set<ServidorDependente
> dependentes
) {
if (VerificadorUtil.
naoEstaNuloOuVazio(dependentes
)) {
for (ServidorDependente servidorDependente : dependentes
) {
servidorDependente.
setServidor(entidade
);
}
entidade.
setListaServidorDependente(dependentes
);
}
return this;
}
public ServidorBuilder comContaBancaria
(Set<ServidorContaBancaria
> contasBancarias
) {
entidade.
setListaServidorContaBancaria(contasBancarias
);
return this;
}
public ServidorBuilder comDataHoraCadastro
(String datahora
) {
entidade.
setDataHoraCadastro(DataUtils.
converterStringParaDataComHorario(datahora
));
return this;
}
public ServidorBuilder comDataHoraAlteracao
(String dataHora
) {
entidade.
setDataHoraAlteracao(DataUtils.
converterStringParaDataComHorario(dataHora
));
return this;
}
public ServidorBuilder comPessoa
(PessoaFisicaView pessoa
) {
entidade.
setPessoa(pessoa
);
return this;
}
public ServidorBuilder comServidorLocalizacaoArquivo
(ServidorLocalizacaoArquivo servidorLocalizacaoArquivo
) {
entidade.
setServidorLocalizacaoArquivo(servidorLocalizacaoArquivo
);
return this;
}
public ServidorBuilder comFoto
(byte[] foto
) {
entidade.
setFoto(foto
);
return this;
}
}