/**
  * @param $stateName
  * @param $entityDescription
  * @return State
  */
 public static function create($stateName, $entityDescription)
 {
     $state = new State($stateName);
     $state->setEntity(EntityFactory::createBasedOnDescription($entityDescription));
     if (array_key_exists('actions', $entityDescription)) {
         $state->setActions($entityDescription['actions']);
     }
     return $state;
 }
 public function visit(State $state)
 {
     return $this->getEntityVisitor()->visit($state->getEntity());
 }