Blame |
Last modification |
View Log
| Download
| RSS feed
package br.gov.al.saude.test.formatador;
import static br.gov.al.saude.test.ConstantesTestHelper.VALOR_VAZIO;
import static br.gov.al.saude.test.util.SrvConversorDeTipo.FORMATO_DATA_DD_MM_YYYY;
import static br.gov.al.saude.test.util.SrvConversorDeTipo.converterDateParaString;
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.framework.model.PessoaFisicaView;
import br.gov.al.saude.test.formatador.impl.FormatadorDeMensagemPessoaFisicaImpl;
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 FormatadorPessoaFisica
extends
AbstractFormatadorDeMensagem
<PessoaFisicaView
> {
private FormatadorDeMensagem
<Object> formatadorDeMensagem
;
public FormatadorPessoaFisica
() {
formatadorDeMensagem =
new FormatadorDeMensagemPessoaFisicaImpl
();
}
@
Override
protected String obterPadrao
() {
StringBuilder pessoaFisica =
new StringBuilder();
pessoaFisica.
append("Nome: ''{0}'', Sexo: ''{1}'', ");
pessoaFisica.
append("Nome da Mãe: ''{2}'', Nome do Pai: ''{3}'', Estado Civil: ''{4}'', ");
pessoaFisica.
append("Data de Nascimento: ''{5}'', Tipo do Endereço: ''{6}'', Logradouro: ''{7}'', ");
pessoaFisica.
append("Número: ''{8}'', CEP: ''{9}'', Bairro: ''{10}'', Complemento: ''{11}'', ");
pessoaFisica.
append("Município: ''{12}'', Documentos: {13}, Telefones: {14}");
return pessoaFisica.
toString();
}
@
Override
protected List<Object> gerarParametros
(PessoaFisicaView pessoaFisica
) {
List<Object> listaParametros =
new ArrayList<Object>();
listaParametros.
add(pessoaFisica.
getNomePessoa());
listaParametros.
add(getNomeSexo
(pessoaFisica.
getTipoSexo()));
listaParametros.
add(pessoaFisica.
getNomeMae());
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getNomePai()) ? pessoaFisica.
getNomePai() : VALOR_VAZIO
);
listaParametros.
add(pessoaFisica.
getDescricaoTipoEstadoCivil().
toUpperCase());
listaParametros.
add(converterDateParaString
(pessoaFisica.
getDataNascimento(), FORMATO_DATA_DD_MM_YYYY
));
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getTipoEndereco()) ? pessoaFisica.
getDescricaoTipoEndereco().
toUpperCase() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getLogradouro()) ? pessoaFisica.
getLogradouro() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getNumeroImovel()) ? pessoaFisica.
getNumeroImovel() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getNumeroCep()) ? pessoaFisica.
getNumeroCep() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getNomeBairro()) ? pessoaFisica.
getNomeBairro() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getComplemento()) ? pessoaFisica.
getComplemento() : VALOR_VAZIO
);
listaParametros.
add(VerificadorUtil.
naoEstaNuloOuVazio(pessoaFisica.
getNomeMunicipio()) ? pessoaFisica.
getNomeMunicipio() : VALOR_VAZIO
);
listaParametros.
add(formatar
(ordenarListaObjetos
(pessoaFisica.
getDocumentos())));
listaParametros.
add(formatar
(ordenarListaObjetos
(pessoaFisica.
getTelefones())));
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 isStringVazia
(mensagem.
toString()) ? null : mensagem.
toString();
}
return null;
}
private boolean isStringVazia
(String mensagem
) {
return mensagem.
isEmpty();
}
private static String getNomeSexo
(String sexo
) {
if(VerificadorUtil.
naoEstaNuloOuVazio(sexo
)) {
if("M".
equalsIgnoreCase(sexo
)) {
return "MASCULINO";
} else if("F".
equalsIgnoreCase(sexo
)) {
return "FEMININO";
}
}
return null;
}
}