/** * Returns the right resource instance for the source content of the item * @param SimpleXMLElement $elementToSearchIn * @param int $conversionProfileId * @return KalturaResource - the resource located in the given element */ protected function getResourceInstance(SimpleXMLElement $elementToSearchIn, $conversionProfileId) { $resource = null; if (isset($elementToSearchIn->serverFileContentResource)) { if ($this->allowServerResource) { KalturaLog::debug("Resource is : serverFileContentResource"); $resource = new KalturaServerFileResource(); $localContentResource = $elementToSearchIn->serverFileContentResource; $resource->localFilePath = kXml::getXmlAttributeAsString($localContentResource, "filePath"); } else { KalturaLog::err("serverFileContentResource is not allowed"); } } elseif (isset($elementToSearchIn->urlContentResource)) { KalturaLog::debug("Resource is : urlContentResource"); $resource = new KalturaUrlResource(); $urlContentResource = $elementToSearchIn->urlContentResource; $resource->url = kXml::getXmlAttributeAsString($urlContentResource, "url"); } elseif (isset($elementToSearchIn->sshUrlContentResource)) { KalturaLog::debug("Resource is : sshUrlContentResource"); $resource = new KalturaSshUrlResource(); $sshUrlContentResource = $elementToSearchIn->sshUrlContentResource; $resource->url = kXml::getXmlAttributeAsString($sshUrlContentResource, "url"); $resource->keyPassphrase = kXml::getXmlAttributeAsString($sshUrlContentResource, "keyPassphrase"); $resource->privateKey = strval($sshUrlContentResource->privateKey); $resource->publicKey = strval($sshUrlContentResource->publicKey); } elseif (isset($elementToSearchIn->remoteStorageContentResource)) { KalturaLog::debug("Resource is : remoteStorageContentResource"); $resource = new KalturaRemoteStorageResource(); $remoteContentResource = $elementToSearchIn->remoteStorageContentResource; $resource->url = kXml::getXmlAttributeAsString($remoteContentResource, "url"); $resource->storageProfileId = $this->getStorageProfileId($remoteContentResource); } elseif (isset($elementToSearchIn->remoteStorageContentResources)) { KalturaLog::debug("Resource is : remoteStorageContentResources"); $resource = new KalturaRemoteStorageResources(); $resource->resources = array(); $remoteContentResources = $elementToSearchIn->remoteStorageContentResources; foreach ($remoteContentResources->remoteStorageContentResource as $remoteContentResource) { /* @var $remoteContentResource SimpleXMLElement */ KalturaLog::debug("Resources name [" . $remoteContentResource->getName() . "] url [" . $remoteContentResource['url'] . "] storage [{$remoteContentResource->storageProfile}]"); $childResource = new KalturaRemoteStorageResource(); $childResource->url = kXml::getXmlAttributeAsString($remoteContentResource, "url"); $childResource->storageProfileId = $this->getStorageProfileId($remoteContentResource); $resource->resources[] = $childResource; } } elseif (isset($elementToSearchIn->entryContentResource)) { KalturaLog::debug("Resource is : entryContentResource"); $resource = new KalturaEntryResource(); $entryContentResource = $elementToSearchIn->entryContentResource; $resource->entryId = kXml::getXmlAttributeAsString($entryContentResource, "entryId"); $resource->flavorParamsId = $this->getFlavorParamsId($entryContentResource, $conversionProfileId, false); } elseif (isset($elementToSearchIn->assetContentResource)) { KalturaLog::debug("Resource is : assetContentResource"); $resource = new KalturaAssetResource(); $assetContentResource = $elementToSearchIn->assetContentResource; $resource->assetId = kXml::getXmlAttributeAsString($assetContentResource, "assetId"); } return $resource; }