public function toObject($object_to_fill = null, $props_to_skip = array()) { if (is_null($this->operationAttributes) || !count($this->operationAttributes)) { return $this->resource->toObject(); } if (!$object_to_fill) { $object_to_fill = new kOperationResource(); } $operationAttributes = array(); foreach ($this->operationAttributes as $operationAttributesObject) { $operationAttributes[] = $operationAttributesObject->toObject(); } $object_to_fill->setOperationAttributes($operationAttributes); $object_to_fill->setResource($this->resource->toObject()); return parent::toObject($object_to_fill, $props_to_skip); }
/** * @param kOperationResource $resource * @param entry $dbEntry * @param asset $dbAsset * @return asset */ protected function attachOperationResource(kOperationResource $resource, entry $dbEntry, asset $dbAsset = null) { $isNewAsset = false; $isSource = false; if ($dbAsset) { if ($dbAsset instanceof flavorAsset) { $isSource = $dbAsset->getIsOriginal(); } } else { $isNewAsset = true; $isSource = true; $dbAsset = kFlowHelper::createOriginalFlavorAsset($this->getPartnerId(), $dbEntry->getId()); } if (!$dbAsset && $dbEntry->getStatus() == entryStatus::NO_CONTENT) { $dbEntry->setStatus(entryStatus::ERROR_CONVERTING); $dbEntry->save(); } $operationAttributes = $resource->getOperationAttributes(); $internalResource = $resource->getResource(); if ($internalResource instanceof kLiveEntryResource) { $dbEntry->setOperationAttributes($operationAttributes); $dbEntry->save(); return $this->attachLiveEntryResource($internalResource, $dbEntry, $dbAsset, $operationAttributes); } $dbAsset = $this->attachResource($internalResource, $dbEntry, $dbAsset); $sourceType = $resource->getSourceType(); if ($sourceType) { $dbEntry->setSource($sourceType); $dbEntry->save(); } $errDescription = ''; kBusinessPreConvertDL::decideAddEntryFlavor(null, $dbEntry->getId(), $resource->getAssetParamsId(), $errDescription, $dbAsset->getId(), $operationAttributes); if ($isNewAsset) { kEventsManager::raiseEvent(new kObjectAddedEvent($dbAsset)); } kEventsManager::raiseEvent(new kObjectDataChangedEvent($dbAsset)); if ($isSource && $internalResource instanceof kFileSyncResource) { $srcEntryId = $internalResource->getEntryId(); if ($srcEntryId) { $srcEntry = entryPeer::retrieveByPKNoFilter($srcEntryId); if ($srcEntry) { $dbEntry->setSourceEntryId($srcEntryId); $dbEntry->setRootEntryId($srcEntry->getRootEntryId(true)); } } $dbEntry->setOperationAttributes($operationAttributes); $dbEntry->save(); } return $dbAsset; }