Blame |
Last modification |
View Log
| Download
| RSS feed
package br.gov.al.saude.test.formatador;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.rhd.model.Cronograma;
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemAuxiliarImpl;
import br.gov.al.saude.test.util.formatador.ContextoMensagem;
import br.gov.al.saude.test.util.formatador.FormatadorDeMensagem;
import br.gov.al.saude.test.util.formatador.impl.AbstractFormatadorDeMensagem;
public class FormatadorCronograma
extends AbstractFormatadorDeMensagem
<Cronograma
> {
private static final String PADRAO_CRONOGRAMA_ETAPA =
"Ano: ''{0}'', Lista de Etapas: ''{1}''";
private FormatadorDeMensagem
<Object> formatadorDeMensagem
;
public FormatadorCronograma
() {
formatadorDeMensagem =
new FormatadorDeMensagemAuxiliarImpl
();
}
@
Override
protected String obterPadrao
() {
return PADRAO_CRONOGRAMA_ETAPA
;
}
@
Override
protected List<Object> gerarParametros
(Cronograma cronograma
) {
List<Object> listaParametros =
new ArrayList<Object>();
listaParametros.
add(parseString
(cronograma.
getNumeroAno()));
listaParametros.
add(formatar
(ordenarListaObjetos
(cronograma.
getCronogramaEtapas())));
return listaParametros
;
}
private <T
extends Comparable<? super T
>> List<T
> ordenarListaObjetos
(Set<T
> objetos
) {
List<T
> listaObjetos =
null;
if(VerificadorUtil.
naoEstaNuloOuVazio(objetos
)){
listaObjetos =
new ArrayList<T
>(objetos
);
Collections.
sort(listaObjetos
);
}
return listaObjetos
;
}
private <T
> String formatar
(List<T
> objetos
) {
if(VerificadorUtil.
naoEstaNulo(objetos
)) {
StringBuilder mensagem =
new StringBuilder();
for (T objeto : objetos
) {
mensagem.
append(formatadorDeMensagem.
formatar(ContextoMensagem.
NAO_POSSUI, objeto
));
}
return mensagem.
toString().
isEmpty() ? null : mensagem.
toString();
}
return null;
}
private static String parseString
(Long valor
) {
return valor
!=
null? valor.
toString() :
null;
}
}