Senhores,
eu posso facilmente utilizar os tipos enum para representar os estado de uma máquina, por exemplo:
public enum CSVEstado {
A,B,C;
}
Mas, existe alguma forma de eu controlar as transições de estado. Por exemplo, do estado A eu posso mudar para A,B e C. Do estado B eu posso mudar para A ou B. E do estado C posso ir para A,B ou C. (ver a figura em anexo).
Como posso fazer para que quando o estado do objeto for alterado do estado B para C gere por exemplo um java.lang.IllegalStateException?
Terei que encapsular um objeto desse enum em uma classe para realizar esse tipo de controle?
vw

