/** * @param Workflow $workflow * @param $isBeingCopied * @return View * @throws NotSupportedException if the type provided is not valid */ public static function makeViewFromWorkflow(Workflow $workflow, $isBeingCopied = false) { assert('is_bool($isBeingCopied)'); $type = $workflow->getType(); $workflowToWizardFormAdapter = new WorkflowToWizardFormAdapter($workflow); if ($type == Workflow::TYPE_ON_SAVE) { $viewClassName = 'OnSaveWorkflowWizardView'; $form = $workflowToWizardFormAdapter->makeOnSaveWizardForm(); } elseif ($type == Workflow::TYPE_BY_TIME) { $viewClassName = 'ByTimeWorkflowWizardView'; $form = $workflowToWizardFormAdapter->makeByTimeWizardForm(); } else { throw new NotSupportedException(); } return new $viewClassName($form, $isBeingCopied); }