Validação de Feijão Condicional
Eu estou usando Bean Validation no meu projeto JSF. Agora eu me deparei com uma situação em que gostaria de validar um método somente quando um método anterior é validado.
Eu vou dar um exemplo:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
if(isValidActivationCode()) {
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { ... }
}
Como receberei o Código de Ativação por parâmetro, gostaria de validá-lo primeiro. Se não for válido, causará uma violação. Se assim for, não posso nem verificar se já está ativado (já que o código é inválido). Então, é possível conseguir algo como o mencionado acima (a função da declaração if, eu sei que isso não funcionaria de jeito nenhum, mas mostra o que eu estou tentando realizar).
desde já, obrigado
Atualizar
Solução alternativa como Ravi K mencionou:
@AssertTrue(message="{invalidCode}")
private boolean isValidActivationCode() { ... }
@AssertTrue(message="{alreadyActivated}")
private boolean isAlreadyActivated() { return isValidActivationCode() ? ... : true; }
Embora eu me pergunte, existe uma maneira limpa de resolver isso? Se ninguém fornecer uma resposta em breve, vou assumir que não há solução limpa para isso e vou aceitar a solução alternativa de Ravi K como a resposta para este problema.