/**
  * Add next
  *
  * @param ModelState $state
  */
 public function addNext(ModelState $state)
 {
     $state->setPrevious($this);
     $this->next[] = $state;
 }
 /**
  * Create a new model state.
  *
  * @param ModelInterface $model
  * @param string $processName
  * @param string $stepName
  * @param ModelState $previous
  * @return \FreeAgent\WorkflowBundle\Entity\ModelState
  */
 protected function createModelState(ModelInterface $model, $processName, $stepName, $previous = null)
 {
     $modelState = new ModelState();
     $modelState->setWorkflowIdentifier($model->getWorkflowIdentifier());
     $modelState->setProcessName($processName);
     $modelState->setStepName($stepName);
     $modelState->setData($model->getWorkflowData());
     if ($previous instanceof ModelState) {
         $modelState->setPrevious($previous);
     }
     return $modelState;
 }