WorkflowExecutionValidator will pick up an appropriate validator from a list and check if transition is allowed. Validators are implemented for each workflow execution status Validators are applied in production code
interface WorkflowExecutionValidator { boolean isTransitionAllowed(WorkflowExecution workflowExecution, WorkflowExecutionStatus toStatus); }