package br.gov.al.saude.test.builder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
import br.gov.al.saude.rhd.model.view.ServidorView;
import br.gov.al.saude.scg.model.view.PessoaFisicaView;
import br.gov.al.saude.test.unidade.generic.builder.AbstractEntidadeBuilder;
public class ServidorViewBuilder
extends AbstractEntidadeBuilder
<ServidorView
> {
public ServidorViewBuilder comSequencial
(String codigo
) {
PessoaFisicaView pessoa =
new PessoaFisicaView
();
pessoa.
setSequencialPessoa(parseLong
(codigo
));
entidade.
setPessoa(pessoa
);
return this;
}
public ServidorViewBuilder comDadosFuncionais
(Set<ServidorDadoFuncionalView
> listaServidorDadoFuncionalView
) {
entidade.
setListaDadosFuncionaisView(listaServidorDadoFuncionalView
);
return this;
}
public ServidorViewBuilder comDadoFuncional
(ServidorDadoFuncionalView dadoFuncional
) {
entidade.
getListaDadosFuncionaisView().
add(dadoFuncional
);
return this;
}
public ServidorViewBuilder comPessoaFisica
(PessoaFisicaView pessoaFisica
) {
entidade.
setPessoa(pessoaFisica
);
return this;
}
public ServidorViewBuilder comDataNascimento
(String dataNascimento
) {
entidade.
setDataNascimento(parseDate
(dataNascimento,
"dd/MM/yyyy"));
return this;
}
public ServidorViewBuilder comNacionalidade
(String nacionalidade
) {
entidade.
setNacionalidade(nacionalidade
);
return this;
}
public ServidorViewBuilder comNome
(String nome
) {
entidade.
setNome(nome
);
return this;
}
public ServidorViewBuilder comSexo
(String sexo
) {
entidade.
setSexo(sexo
);
return this;
}
@
Override
protected void inicializarDadosDefault
() {
entidade =
new ServidorView
();
}
private Date parseDate
(String dataString,
String pattern
) {
SimpleDateFormat format =
new SimpleDateFormat(pattern
);
try {
return format.
parse(dataString
);
} catch (ParseException e
) {
throw new RuntimeException("Não foi possível converter a data.");
}
}
}