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.scs.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
                List<Object> listaParametros = new ArrayList<Object>();
41
                listaParametros.add(servidorView.getNome());
42
                listaParametros.add(obterSexoPorExtenso(servidorView.getSexo()));
43
                listaParametros.add(parseString(servidorView.getDataNascimento()));
44
                listaParametros.add(servidorView.getNacionalidade());
45
                listaParametros.add(formatar(ordenarListaObjetos(servidorView.getPessoa().getDocumentos())));
46
                listaParametros.add(servidorView.getPessoa().getLogradouro());
47
                listaParametros.add(servidorView.getPessoa().getNumeroImovel());
48
                listaParametros.add(servidorView.getPessoa().getComplemento());
49
                listaParametros.add(servidorView.getPessoa().getNomeBairro());
50
                listaParametros.add(servidorView.getPessoa().getNomeMunicipio());
51
                listaParametros.add(servidorView.getPessoa().getNumeroCep());
52
                listaParametros.add(formatar(ordenarListaObjetos(servidorView.getPessoa().getTelefones())));
53
                listaParametros.add(servidorView.getPessoa().getEmail());
54
                return listaParametros;
55
        }
56
 
57
        private <T extends Comparable<? super T>> List<T> ordenarListaObjetos(Set<T> objetos) {
58
                List<T> listaObjetos = null;
59
                if(VerificadorUtil.naoEstaNuloOuVazio(objetos)){
60
                        listaObjetos = new ArrayList<T>(objetos);
61
                        Collections.sort(listaObjetos);
62
                }
63
                return listaObjetos;
64
        }
65
 
66
        private <T> String formatar(List<T> objetos) {
67
                if (VerificadorUtil.naoEstaNulo(objetos)) {
68
                        StringBuilder mensagem = new StringBuilder();
69
                        for (T objeto : objetos) {
70
                                mensagem.append(formatadorDeMensagem.formatar(ContextoMensagem.NAO_POSSUI, objeto));
71
                        }
72
                        return mensagem.toString().isEmpty() ? null : mensagem.toString();
73
                }
74
                return null;
75
        }
76
 
77
        private String obterSexoPorExtenso(String sexo) {
78
                if (sexo == null)
79
                        return null;
80
                if ("M".equals(sexo))
81
                        return "Masculino";
82
                if ("F".equals(sexo))
83
                        return "Feminino";
84
                return sexo;
85
        }
86
 
87
        private String parseString(Date data) {
88
                SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
89
                return format.format(data);
90
        }
91
 
92
}