/**
  * @param Ezer_Case $case
  * @return Ezer_PropelBusinessProcessInstance
  */
 public function &createBusinessProcessInstance(Ezer_Case $case)
 {
     $ret = new Ezer_PropelBusinessProcessInstance();
     $ret->setProcessId($this->getId());
     $ret->setCaseId($case->getId());
     $ret->setStepId($this->getId());
     $ret->setName($this->getName());
     $ret->setVariables($case->getVariables());
     $ret->save();
     return $ret;
 }
 private function mapConfig(Ezer_Config $config)
 {
     $id = uniqid('case_');
     $case = new Ezer_Case($id, $config->identifier);
     $case->priority = $config->priority;
     foreach ($config->variables as $variable) {
         $value = null;
         if (isset($variable['value'])) {
             $value = $variable['value'];
         }
         if (isset($variable['part'])) {
             $value = array();
             $this->addVariablePart($value, $variable['part']);
         }
         if ($variable->type == Ezer_Config::ARRAY_TYPE) {
             $value = array();
             $arr = $variable->getArrayCopy();
             foreach ($arr as $index => $part) {
                 if (is_numeric($index)) {
                     $this->addVariablePart($value, $part);
                 }
             }
         }
         $case->addVariable($variable->name, $value);
     }
     return $case;
 }
 /**
  * @param Ezer_Case $case
  * @return Ezer_BusinessProcessInstance
  */
 public function &createBusinessProcessInstance(Ezer_Case $case)
 {
     $ret = new Ezer_BusinessProcessInstance($case->getVariables(), $this);
     return $ret;
 }
 /**
  * @param Ezer_Case $case
  * @return Ezer_BusinessProcessInstance
  */
 public function &createBusinessProcessInstance(Ezer_Case $case)
 {
     $instance_path = $this->instance_path . '/' . uniqid('inst') . '.xml';
     $ret = new Ezer_XmlBusinessProcessInstance($instance_path, $case->getVariables(), $this);
     return $ret;
 }
 private function loadCase(Ezer_PropelCase $dbCase)
 {
     $case = new Ezer_Case($dbCase->getId(), $dbCase->getProcessId());
     $case->setVariables($dbCase->getVariables());
     return $case;
 }