Pessoal,
Estou abrindo este espaço para que vcs postem os código mais bizzarros que já viram nos projetos que estão trabalhando atualmente.
Fui dar manutenção em um método onde trabalho e quando vi o código e sua lógica no IF percebi q tinha q dividir aquilo com alguém… rs
segue o método
public Execucao obterExecucaoAtivaDoProcesso(ProcessoExecucao processoExecucao) throws BusinessException {
Integer codProcExec = processoExecucao.getCodProcExec();
Execucao exec = null;
exec = this.obterExecucao(codProcExec, SituacaoExecucao.EM_CUMPRIMENTO);
if (exec == null || (exec != null && exec.getCodExecucao() == null)) {
exec = this.obterExecucao(codProcExec, SituacaoExecucao.POR_CUMPRIR);
}
if (exec == null || (exec != null && exec.getCodExecucao() == null)) {
exec = this.obterExecucaoMaisAntiga(codProcExec);
}
return exec;
}
Não achei tão tosco assim, para falar a verdade. A idéia por trás de ter um objeto Execucao é desenvolver os passos de um workflow. Por que é que parece tosco para você?
lokits5
Agosto 17, 2010, 12:46pm
#4
hân! pra que fazer isso cada um faz do jeito que quer, isso seria um gambiarra ,pra rodar rs
sou iniciante…
qual é o problema deste código? achei ele legal… hehehe
pode me explicar qual seria uma solução melhor?
abraços
Os dois ifs fazem a mesma coisa e a segunda comparação faz obj != null sendo que ja teria passado por obj == null antes.
Fora que se ele vier null na primeira “obterExecucao” ele provavelmente nao iria conseguir na segunda.
O melhor seria:
public Execucao obterExecucaoAtivaDoProcesso(ProcessoExecucao processoExecucao) throws BusinessException {
Integer codProcExec = processoExecucao.getCodProcExec();
Execucao exec = this.obterExecucao(codProcExec, SituacaoExecucao.EM_CUMPRIMENTO);
if (exec == null || exec.getCodExecucao() == null)
exec = this.obterExecucaoMaisAntiga(codProcExec);
return exec;
}
Ok, não precisamos de mais um tópico sobre isso (embora exista muita tosquisse no mundo).
Quem quiser, acompanha no link ali em cima…