if (!typedState().isSameOrSubState(OpenState.RUNNING)
&& !typedState().isSameOrSubState(SuspendedState.SUSPENDED)) {
throw new NotRunningException (toString() + " is " + state());
}
if (!typedState().isSameOrSubState(NotRunningState.SUSPENDED)) {
throw new NotSuspendedException (toString());
}
if (!validTypedStates().contains (OpenState.RUNNING)) {
throw new CannotResumeException(toString() + " is " + state());
}
updateState (RunningState.RUNNING);