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.util.ArrayList;
4
import java.util.Collections;
5
import java.util.List;
6
import java.util.Set;
7
 
8
import br.gov.al.saude.framework.core.util.VerificadorUtil;
9
import br.gov.al.saude.rhd.model.Cronograma;
10
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemAuxiliarImpl;
11
import br.gov.al.saude.test.util.formatador.ContextoMensagem;
12
import br.gov.al.saude.test.util.formatador.FormatadorDeMensagem;
13
import br.gov.al.saude.test.util.formatador.impl.AbstractFormatadorDeMensagem;
14
 
15
public class FormatadorCronograma extends AbstractFormatadorDeMensagem<Cronograma> {
16
 
17
        private static final String PADRAO_CRONOGRAMA_ETAPA = "Ano: ''{0}'', Lista de Etapas: ''{1}''";
18
 
19
        private FormatadorDeMensagem<Object> formatadorDeMensagem;
20
 
21
        public FormatadorCronograma() {
22
                formatadorDeMensagem = new FormatadorDeMensagemAuxiliarImpl();
23
        }
24
 
25
        @Override
26
        protected String obterPadrao() {
27
                return PADRAO_CRONOGRAMA_ETAPA;
28
        }
29
 
30
        @Override
31
        protected List<Object> gerarParametros(Cronograma cronograma) {
32
                List<Object> listaParametros = new ArrayList<Object>();
33
                listaParametros.add(parseString(cronograma.getNumeroAno()));
34
                listaParametros.add(formatar(ordenarListaObjetos(cronograma.getCronogramaEtapas())));
35
                return listaParametros;
36
        }
37
 
38
        private <T extends Comparable<? super T>> List<T> ordenarListaObjetos(Set<T> objetos) {
39
                List<T> listaObjetos = null;
40
                if(VerificadorUtil.naoEstaNuloOuVazio(objetos)){
41
                        listaObjetos = new ArrayList<T>(objetos);
42
                        Collections.sort(listaObjetos);
43
                }
44
                return listaObjetos;
45
        }
46
 
47
        private <T> String formatar(List<T> objetos) {
48
                if(VerificadorUtil.naoEstaNulo(objetos)) {
49
                        StringBuilder mensagem = new StringBuilder();
50
                        for (T objeto : objetos) {
51
                                mensagem.append(formatadorDeMensagem.formatar(ContextoMensagem.NAO_POSSUI, objeto));
52
                        }
53
                        return mensagem.toString().isEmpty() ? null : mensagem.toString();
54
                }
55
                return null;
56
        }
57
 
58
        private static String parseString(Long valor) {
59
                return valor != null? valor.toString() : null;
60
        }
61
 
62
}