Tenho uma tela no sistema onde é possíveo o usuario criar um historico padrão utilizando algumas “macros” pre-definidas por nós.
As macros são substituidas por valores.
Ex. Entrada de título <nutitulo> <tpdoc>/<nudoc> cliente <nmcliente> emprend. <nmempr> ref. <deobs>
Onde o
<nutitulo> seria substitui pelo valor de titulo.getTituloPK().getNutitulo().toString()
<tpdoc> por titulo.getCdDocumento()
<nudoc> por titulo.getNUDocumento()
<nmcliente> por titulo.getCliente().getNmCliente()
<nmempr> por titulo.getApropFin().getEmpreend().getNmEmpreend()
<deobs> por titulo.getDeObs()
Existem varias outras
A ideia seria reuniar num unico lugar as macros e substituir conforme for.
Pois a chamada a esse metodo que quero criar (seja por map ou outra coisa qq) será de varios outros metodos.
Tinha feito assim:
public static String getDeComplementoHistoricoPad(Integer cdOperacao, Map<String, HistoricoPad> mapHistorico, String... parametros) {
String deComplemento = getHistoricoPad(cdOperacao, mapHistorico).getDeComplemento().toString();
try {
System.out.println("parametros: " + parametros);
System.out.println("deComplemento: " + deComplemento);
for (int i = 0; i < parametros.length; i++) {
String string = parametros[i];
deComplemento = TextUtils.replaceAll(deComplemento, "<cdempr>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<cdimposto>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<deobs>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<deobsbaix", string);
deComplemento = TextUtils.replaceAll(deComplemento, "><dtcontabi", string);
deComplemento = TextUtils.replaceAll(deComplemento, "><nmcliente", string);
deComplemento = TextUtils.replaceAll(deComplemento, "><nmcredor>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nmdoc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nmempr>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nmimposto>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nucheque>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nuconta>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nudoc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nudoccp>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nuparc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nutitulo>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<nuunid>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<pgparc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<qtparc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<tpdoc>", string);
deComplemento = TextUtils.replaceAll(deComplemento, "<unidsec>", string);
if (br.com.softplan.sienge.crc.Baixa.FLPARCIALTOTAL_PARCIAL.equals(string)) {
deComplemento = TextUtils.replaceAll(deComplemento, "<pgparc>", "parte");
} else {
deComplemento = TextUtils.replaceAll(deComplemento, "<pgparc>", "");
}
}
} catch (Exception e) {
deComplemento = "Houve um problema ao recuperar o histórico padrão.";
}
deComplemento = reset(deComplemento);
return TextUtils.trunca(deComplemento, 399);
}
Porem ele substitui tudo, a ideia no map dinamico me pareceu a mais adequada no momento.
Aceito sugestões
Antes era assim (em cada método gerador de lançamento), mas fica inviavel manter assim pela manutenção em varios metodos.
deComplemento = TextUtils.replaceAll(deComplemento, "<nutitulo>", titulo.getTituloPK().getNuTitulo().toString());
deComplemento = TextUtils.replaceAll(deComplemento, "<nudoc>", titulo.getNuDocumento());
deComplemento = TextUtils.replaceAll(deComplemento, "<nmdoc>", titulo.getDocumento().getNmDocumento());
deComplemento = TextUtils.replaceAll(deComplemento, "<tpdoc>", titulo.getCdDocumento().trim());
deComplemento = TextUtils.replaceAll(deComplemento, "<deobs>", TextUtils.isValidText(titulo.getDeObservacao()) ? titulo.getDeObservacao() : "");
deComplemento = TextUtils.replaceAll(deComplemento, "<dtcontabil>", DateUtils.convertBrDate(titulo.getDtContabil()));
deComplemento = TextUtils.replaceAll(deComplemento, "<nmcliente>", titulo.getCliente().getNmCliente());
deComplemento = TextUtils.replaceAll(deComplemento, "<pgparc>", "parte");
deComplemento = TextUtils.replaceAll(deComplemento, "<nuunid>", getCdUnidade(titulo.getUnidadePrincipal()));
deComplemento = TextUtils.replaceAll(deComplemento, "<nmempr>", getNmEmpreend(apropFin));
deComplemento = TextUtils.replaceAll(deComplemento, "<cdempr>", getCdEmpreendUnidade(apropFin));
deComplemento = TextUtils.replaceAll(deComplemento, "<qtparc>", titulo.getQtParcelas().toString());
deComplemento = TextUtils.replaceAll(deComplemento, "<unidsec>", titulo.getUnidadesSegundariasStrForINC());