Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.gov.al.saude.test.formatador;
2
 
3
import java.text.SimpleDateFormat;
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.Date;
7
import java.util.List;
8
import java.util.Set;
9
 
10
import br.gov.al.saude.framework.core.util.VerificadorUtil;
11
import br.gov.al.saude.rhd.model.view.ServidorView;
12
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemAuxiliarImpl;
13
import br.gov.al.saude.test.util.formatador.ContextoMensagem;
14
import br.gov.al.saude.test.util.formatador.FormatadorDeMensagem;
15
import br.gov.al.saude.test.util.formatador.impl.AbstractFormatadorDeMensagem;
16
 
17
public class FormatadorServidor extends AbstractFormatadorDeMensagem<ServidorView> {
18
 
19
        private static final String PADRAO_SERVIDOR = "Dados Pessoais: Nome: ''{0}'', Sexo: ''{1}'', Data de Nascimento: ''{2}'', Nacionalidade: ''{3}''; " +
20
                        "Dados Funcionais: Matrícula: ''{4}'', Data de Admissão: ''{5}'', Tipo Servidor: ''{6}'', Situação: ''{7}'', Cargo: ''{8}'', " +
21
                        "Órgão de Origem: ''{9}'', Órgão de Lotação: ''{10}'', Unidade de Exercício: ''{11}'', Unidade de Lotação: ''{12}'', " +
22
                        "Data de Exercício: ''{13}'', Setor: ''{14}'', Classe: ''{15}'', Nível: ''{16}''; " +
23
                        "Documentos: ''{17}''; " +
24
                        "Endereço: Logradouro: ''{18}'', Número: ''{19}'', Complemento: ''{20}'', Bairro: ''{21}'', Cidade: ''{22}'', CEP: ''{23}''; " +
25
                        "Contatos: ''{24}''; E-mail: ''{25}''";
26
 
27
        private FormatadorDeMensagem<Object> formatadorDeMensagem;
28
 
29
        public FormatadorServidor() {
30
                formatadorDeMensagem = new FormatadorDeMensagemAuxiliarImpl();
31
        }
32
 
33
        @Override
34
        protected String obterPadrao() {
35
                return PADRAO_SERVIDOR;
36
        }
37
 
38
        @Override
39
        protected List<Object> gerarParametros(ServidorView servidorView) {
40
 
41
                List<Object> listaParametros = new ArrayList<Object>();
42
                listaParametros.add(servidorView.getNome());
43
                listaParametros.add(obterSexoPorExtenso(servidorView.getSexo()));
44
                listaParametros.add(parseString(servidorView.getDataNascimento()));
45
                listaParametros.add(servidorView.getNacionalidade());
46
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getNumeroMatricula().toString());
47
                listaParametros.add(parseString(servidorView.getPrimeiroDadoFuncional().getDataAdmissao()));
48
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoTipoServidor());
49
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoSituacaoServidor());
50
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoCargo());
51
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoOrgaoOrigem());
52
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoOrgaoLotacao());
53
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoUnidadeExercicio());
54
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoUnidadeLotacao());
55
                listaParametros.add(parseString(servidorView.getPrimeiroDadoFuncional().getDataExercicio()));
56
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getDescricaoSetor());
57
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getTipoClasseCarreira());
58
                listaParametros.add(servidorView.getPrimeiroDadoFuncional().getTipoNivelCarreira());
59
                listaParametros.add(formatar(ordenarListaObjetos(servidorView.getPessoa().getDocumentos())));
60
                listaParametros.add(servidorView.getPessoa().getLogradouro());
61
                listaParametros.add(servidorView.getPessoa().getNumeroImovel());
62
                listaParametros.add(servidorView.getPessoa().getComplemento());
63
                listaParametros.add(servidorView.getPessoa().getNomeBairro());
64
                listaParametros.add(servidorView.getPessoa().getNomeMunicipio());
65
                listaParametros.add(servidorView.getPessoa().getNumeroCep());
66
                listaParametros.add(formatar(ordenarListaObjetos(servidorView.getPessoa().getTelefones())));
67
                listaParametros.add(servidorView.getPessoa().getEmail());
68
                return listaParametros;
69
        }
70
 
71
        private <T extends Comparable<? super T>> List<T> ordenarListaObjetos(Set<T> objetos) {
72
                List<T> listaObjetos = null;
73
                if(VerificadorUtil.naoEstaNuloOuVazio(objetos)){
74
                        listaObjetos = new ArrayList<T>(objetos);
75
                        Collections.sort(listaObjetos);
76
                }
77
                return listaObjetos;
78
        }
79
 
80
        private <T> String formatar(List<T> objetos) {
81
                if(VerificadorUtil.naoEstaNulo(objetos)) {
82
                        StringBuilder mensagem = new StringBuilder();
83
                        for (T objeto : objetos) {
84
                                mensagem.append(formatadorDeMensagem.formatar(ContextoMensagem.NAO_POSSUI, objeto));
85
                        }
86
                        return mensagem.toString().isEmpty() ? null : mensagem.toString();
87
                }
88
                return null;
89
        }
90
 
91
        private String obterSexoPorExtenso(String sexo) {
92
                if(sexo == null)
93
                        return null;
94
                if("M".equals(sexo))
95
                        return "Masculino";
96
                if("F".equals(sexo))
97
                        return "Feminino";
98
                return sexo;
99
        }
100
 
101
        private String parseString(Date data) {
102
                SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
103
                return format.format(data);
104
        }
105
 
106
}