Blame |
Last modification |
View Log
| Download
| RSS feed
package br.gov.al.saude.test.formatador;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Set;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.rhd.model.view.ServidorView;
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 FormatadorServidor
extends AbstractFormatadorDeMensagem
<ServidorView
> {
private static final String PADRAO_SERVIDOR =
"Dados Pessoais: Nome: ''{0}'', Sexo: ''{1}'', Data de Nascimento: ''{2}'', Nacionalidade: ''{3}''; " +
"Dados Funcionais: Matrícula: ''{4}'', Data de Admissão: ''{5}'', Tipo Servidor: ''{6}'', Situação: ''{7}'', Cargo: ''{8}'', " +
"Órgão de Origem: ''{9}'', Órgão de Lotação: ''{10}'', Unidade de Exercício: ''{11}'', Unidade de Lotação: ''{12}'', " +
"Data de Exercício: ''{13}'', Setor: ''{14}'', Classe: ''{15}'', Nível: ''{16}''; " +
"Documentos: ''{17}''; " +
"Endereço: Logradouro: ''{18}'', Número: ''{19}'', Complemento: ''{20}'', Bairro: ''{21}'', Cidade: ''{22}'', CEP: ''{23}''; " +
"Contatos: ''{24}''; E-mail: ''{25}''";
private FormatadorDeMensagem
<Object> formatadorDeMensagem
;
public FormatadorServidor
() {
formatadorDeMensagem =
new FormatadorDeMensagemAuxiliarImpl
();
}
@
Override
protected String obterPadrao
() {
return PADRAO_SERVIDOR
;
}
@
Override
protected List<Object> gerarParametros
(ServidorView servidorView
) {
List<Object> listaParametros =
new ArrayList<Object>();
listaParametros.
add(servidorView.
getNome());
listaParametros.
add(obterSexoPorExtenso
(servidorView.
getSexo()));
listaParametros.
add(parseString
(servidorView.
getDataNascimento()));
listaParametros.
add(servidorView.
getNacionalidade());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getNumeroMatricula().
toString());
listaParametros.
add(parseString
(servidorView.
getPrimeiroDadoFuncional().
getDataAdmissao()));
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoTipoServidor());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoSituacaoServidor());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoCargo());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoOrgaoOrigem());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoOrgaoLotacao());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoUnidadeExercicio());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoUnidadeLotacao());
listaParametros.
add(parseString
(servidorView.
getPrimeiroDadoFuncional().
getDataExercicio()));
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getDescricaoSetor());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getTipoClasseCarreira());
listaParametros.
add(servidorView.
getPrimeiroDadoFuncional().
getTipoNivelCarreira());
listaParametros.
add(formatar
(ordenarListaObjetos
(servidorView.
getPessoa().
getDocumentos())));
listaParametros.
add(servidorView.
getPessoa().
getLogradouro());
listaParametros.
add(servidorView.
getPessoa().
getNumeroImovel());
listaParametros.
add(servidorView.
getPessoa().
getComplemento());
listaParametros.
add(servidorView.
getPessoa().
getNomeBairro());
listaParametros.
add(servidorView.
getPessoa().
getNomeMunicipio());
listaParametros.
add(servidorView.
getPessoa().
getNumeroCep());
listaParametros.
add(formatar
(ordenarListaObjetos
(servidorView.
getPessoa().
getTelefones())));
listaParametros.
add(servidorView.
getPessoa().
getEmail());
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 String obterSexoPorExtenso
(String sexo
) {
if(sexo ==
null)
return null;
if("M".
equals(sexo
))
return "Masculino";
if("F".
equals(sexo
))
return "Feminino";
return sexo
;
}
private String parseString
(Date data
) {
SimpleDateFormat format =
new SimpleDateFormat("dd/MM/yyyy");
return format.
format(data
);
}
}