Patch Set 6: No score; No score

I think the state-without-a-name is a problem here. What does it mean? It it cannot be name it is not defined and
I don't think we want that. How about having more flags. checkState could check all flags.

You may want two flags/states. gooaAndDone, badAndDone, notDoneYet.

Make the call to call() an internal one and wrap iit so commands gets executed through that wrapper. The wrapper then keeps track of the state to each command doesm't have to deall with the unnamed state.

execute() {
   try {
       call();
       setState(DONE);
   } catch (RuntimeException e) {
       setState(FAILED);
       throw e;
   }
}