/** * 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; }