E eis que nesse nosso mundo moderno, com uma constante mudança de pensamentos e de ideias, me deparo com o seguinte problema ao dar manutenção num sistema não tão legado assim…
Uma tela para cadastrar Devedores, onde abaixo temos uma aba com Dados Pessoais, e entre estes, os Dados do Cônjuge.
No método save() deste formulário, encontro a seguinte lógica:
public void save() {
try {
[...]
getDevedor().getConjuge().setSexo(getDevedor().getSexo().getOposto());
[...]
setContrato(contratoService.save(getContrato()));
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro salvo!", null);
FacesContext.getCurrentInstance().addMessage(null, msg);
} catch (Exception e) {
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocorreu um erro ao processar.", null);
FacesContext.getCurrentInstance().addMessage(null, msg);
logger.error(e.getMessage(), e);
}
}
o outro método dentro da Enum…
public Sexo getOposto() {
return this == Sexo.MASCULINO ? Sexo.FEMININO : Sexo.MASCULINO;
}
“Bug aberto, bug corrigido.” Criado o campo “Sexo Cônjuge” na aba “Dados Pessoais” e removida esta lógica.
Acredito que muitos sistemas atualmente precisem desta “correção”.