Eu entendi que ele poderia trocar de EmAprovavao para Aprovado, no total chamaria 2 descontos. Se fosse chamado AplicaDesconto novamente ele lançaria uma exception, entao apliquei a condicional do metodo aplicaDesconto, funcionou, mas quero saber se a forma de trabalhar com isso esta correta e se também poderia ser assim?
trecho do codigo
private static int limiteDeDesconto=0;
... outros metodos
public void aplicaDescontoExtra() {
limiteDeDesconto++;
if(limiteDeDesconto > 2)
throw new RuntimeException("Desconto ja ofi aplicado neste orcamento");
else
estadoAtual.aplicaDescontoExtra(this);
}