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 static br.gov.al.saude.test.ConstantesTestHelper.VALOR_VAZIO;
4
import static br.gov.al.saude.test.util.SrvConversorDeTipo.FORMATO_DATA_DD_MM_YYYY;
5
import static br.gov.al.saude.test.util.SrvConversorDeTipo.converterDateParaString;
6
import java.util.ArrayList;
7
import java.util.Collections;
8
import java.util.List;
9
import java.util.Set;
10
import br.gov.al.saude.framework.core.util.VerificadorUtil;
11
import br.gov.al.saude.framework.model.PessoaFisicaView;
12
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemPessoaFisicaImpl;
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 FormatadorPessoaFisica extends
18
                AbstractFormatadorDeMensagem<PessoaFisicaView> {
19
 
20
        private FormatadorDeMensagem<Object> formatadorDeMensagem;
21
 
22
        public FormatadorPessoaFisica() {
23
                formatadorDeMensagem = new FormatadorDeMensagemPessoaFisicaImpl();
24
        }
25
 
26
        @Override
27
        protected String obterPadrao() {
28
                StringBuilder pessoaFisica = new StringBuilder();
29
                pessoaFisica.append("Nome: ''{0}'', Sexo: ''{1}'', ");
30
                pessoaFisica.append("Nome da Mãe: ''{2}'', Nome do Pai: ''{3}'', Estado Civil: ''{4}'', ");
31
                pessoaFisica.append("Data de Nascimento: ''{5}'', Tipo do Endereço: ''{6}'', Logradouro: ''{7}'', ");
32
                pessoaFisica.append("Número: ''{8}'', CEP: ''{9}'', Bairro: ''{10}'', Complemento: ''{11}'', ");
33
                pessoaFisica.append("Município: ''{12}'', Documentos: {13}, Telefones: {14}");
34
 
35
                return pessoaFisica.toString();
36
        }
37
 
38
        @Override
39
        protected List<Object> gerarParametros(PessoaFisicaView pessoaFisica) {
40
                List<Object> listaParametros = new ArrayList<Object>();
41
                listaParametros.add(pessoaFisica.getNomePessoa());
42
                listaParametros.add(getNomeSexo(pessoaFisica.getTipoSexo()));
43
                listaParametros.add(pessoaFisica.getNomeMae());
44
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getNomePai()) ? pessoaFisica.getNomePai() : VALOR_VAZIO);
45
                listaParametros.add(pessoaFisica.getDescricaoTipoEstadoCivil().toUpperCase());
46
                listaParametros.add(converterDateParaString(pessoaFisica.getDataNascimento(), FORMATO_DATA_DD_MM_YYYY));
47
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getTipoEndereco()) ? pessoaFisica.getDescricaoTipoEndereco().toUpperCase() : VALOR_VAZIO);
48
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getLogradouro()) ? pessoaFisica.getLogradouro() : VALOR_VAZIO);
49
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getNumeroImovel()) ? pessoaFisica.getNumeroImovel() : VALOR_VAZIO);
50
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getNumeroCep()) ? pessoaFisica.getNumeroCep() : VALOR_VAZIO);
51
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getNomeBairro()) ? pessoaFisica.getNomeBairro() : VALOR_VAZIO);
52
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getComplemento()) ? pessoaFisica.getComplemento() : VALOR_VAZIO);
53
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(pessoaFisica.getNomeMunicipio()) ? pessoaFisica.getNomeMunicipio() : VALOR_VAZIO);
54
                listaParametros.add(formatar(ordenarListaObjetos(pessoaFisica.getDocumentos())));
55
                listaParametros.add(formatar(ordenarListaObjetos(pessoaFisica.getTelefones())));
56
 
57
                return listaParametros;
58
        }
59
 
60
        private <T extends Comparable<? super T>> List<T> ordenarListaObjetos(Set<T> objetos) {
61
                List<T> listaObjetos = null;
62
 
63
                if(VerificadorUtil.naoEstaNuloOuVazio(objetos)){
64
                        listaObjetos = new ArrayList<T>(objetos);
65
                        Collections.sort(listaObjetos);
66
                }
67
 
68
                return listaObjetos;
69
        }
70
 
71
        private <T> String formatar(List<T> objetos) {
72
                if(VerificadorUtil.naoEstaNulo(objetos)){
73
                        StringBuilder mensagem = new StringBuilder();
74
 
75
                        for (T objeto : objetos) {
76
                                mensagem.append(formatadorDeMensagem.formatar(ContextoMensagem.NAO_POSSUI, objeto));
77
                        }
78
 
79
                        return isStringVazia(mensagem.toString()) ? null : mensagem.toString();
80
                }
81
 
82
                return null;
83
        }
84
 
85
        private boolean isStringVazia(String mensagem) {
86
                return mensagem.isEmpty();
87
        }
88
 
89
        private static String getNomeSexo(String sexo) {
90
                if(VerificadorUtil.naoEstaNuloOuVazio(sexo)) {
91
                        if("M".equalsIgnoreCase(sexo)) {
92
                                return "MASCULINO";
93
                        } else if("F".equalsIgnoreCase(sexo)) {
94
                                return "FEMININO";
95
                        }
96
                }
97
 
98
                return null;
99
        }
100
}