/**
  * @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);
 }
 protected function resolveSavedWorkflowAndWorkflowByPostData(array $postData, &$savedWorkflow, &$workflow, $type, $id = null, $isBeingCopied = false)
 {
     if ($id == null) {
         $this->resolveCanCurrentUserAccessWorkflows();
         $savedWorkflow = new SavedWorkflow();
         $workflow = new Workflow();
         $workflow->setType($type);
     } elseif ($isBeingCopied) {
         $savedWorkflow = new SavedWorkflow();
         $oldWorkflow = SavedWorkflow::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldWorkflow);
         ZurmoCopyModelUtil::copy($oldWorkflow, $savedWorkflow);
         $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow);
     } else {
         $savedWorkflow = SavedWorkflow::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedWorkflow);
         $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow);
     }
     DataToWorkflowUtil::resolveWorkflowByWizardPostData($workflow, $postData, WorkflowToWizardFormAdapter::getFormClassNameByType($type));
 }