Beispiel #1
0
 /**
  * Import a Step.
  *
  * @param Path  $path
  * @param array $data
  * @param array $createdResources
  * @param array $createdSteps
  *
  * @return array
  */
 public function import(Path $path, array $data, array $createdResources = [], array $createdSteps = [])
 {
     $step = new Step();
     $step->setPath($path);
     if (!empty($data['parent'])) {
         $step->setParent($createdSteps[$data['parent']]);
     }
     $step->setLvl($data['lvl']);
     $step->setOrder($data['order']);
     $step->setActivityHeight(0);
     // Link Step to its Activity
     if (!empty($data['activityNodeId']) && !empty($createdResources[$data['activityNodeId']])) {
         // Step has an Activity
         $step->setActivity($createdResources[$data['activityNodeId']]);
     }
     if (!empty($data['inheritedResources'])) {
         foreach ($data['inheritedResources'] as $inherited) {
             if (!empty($createdResources[$inherited['resource']])) {
                 // Check if the resource has been created (in case of the Resource has no Importer, it may not exist)
                 $inheritedResource = new InheritedResource();
                 $inheritedResource->setLvl($inherited['lvl']);
                 $inheritedResource->setStep($step);
                 $inheritedResource->setResource($createdResources[$inherited['resource']]->getResourceNode());
                 $this->om->persist($inheritedResource);
             }
         }
     }
     $createdSteps[$data['uid']] = $step;
     $this->om->persist($step);
     return $createdSteps;
 }