/**
  * @param CaptionAsset $captionAsset
  * @param BatchJob $parentJob
  * @throws kCoreException FILE_NOT_FOUND
  * @return BatchJob
  */
 public function addParseCaptionAssetJob(CaptionAsset $captionAsset, BatchJob $parentJob = null)
 {
     $syncKey = $captionAsset->getSyncKey(asset::FILE_SYNC_ASSET_SUB_TYPE_ASSET);
     $fileSync = kFileSyncUtils::getReadyInternalFileSyncForKey($syncKey);
     if (!$fileSync) {
         if (!PermissionPeer::isValidForPartner(CaptionPermissionName::IMPORT_REMOTE_CAPTION_FOR_INDEXING, $captionAsset->getPartnerId())) {
             throw new kCoreException("File sync not found: {$syncKey}", kCoreException::FILE_NOT_FOUND);
         }
         $fileSync = kFileSyncUtils::getReadyExternalFileSyncForKey($syncKey);
         if (!$fileSync) {
             throw new kCoreException("File sync not found: {$syncKey}", kCoreException::FILE_NOT_FOUND);
         }
         $fullPath = myContentStorage::getFSUploadsPath() . '/' . $captionAsset->getId() . '.tmp';
         if (!kFile::downloadUrlToFile($fileSync->getExternalUrl($captionAsset->getEntryId()), $fullPath)) {
             throw new kCoreException("File sync not found: {$syncKey}", kCoreException::FILE_NOT_FOUND);
         }
         kFileSyncUtils::moveFromFile($fullPath, $syncKey, true, false, true);
     }
     $jobData = new kParseCaptionAssetJobData();
     $jobData->setCaptionAssetId($captionAsset->getId());
     $batchJob = null;
     if ($parentJob) {
         $batchJob = $parentJob->createChild();
     } else {
         $batchJob = new BatchJob();
         $batchJob->setEntryId($captionAsset->getEntryId());
         $batchJob->setPartnerId($captionAsset->getPartnerId());
     }
     return kJobsManager::addJob($batchJob, $jobData, CaptionSearchPlugin::getBatchJobTypeCoreValue(CaptionSearchBatchJobType::PARSE_CAPTION_ASSET));
 }
 /**
  * @param CaptionAsset $captionAsset
  * @param SimpleXMLElement $mrss
  * @return SimpleXMLElement
  */
 public function contributeCaptionAssets(CaptionAsset $captionAsset, SimpleXMLElement $mrss)
 {
     $subTitle = $mrss->addChild('subTitle');
     $subTitle->addAttribute('href', $captionAsset->getDownloadUrl(true));
     $subTitle->addAttribute('captionAssetId', $captionAsset->getId());
     $subTitle->addAttribute('isDefault', $captionAsset->getDefault() ? 'true' : 'false');
     $subTitle->addAttribute('format', $captionAsset->getContainerFormat());
     $subTitle->addAttribute('lang', $captionAsset->getLanguage());
     if ($captionAsset->getFlavorParamsId()) {
         $subTitle->addAttribute('captionParamsId', $captionAsset->getFlavorParamsId());
     }
     $tags = $subTitle->addChild('tags');
     foreach (explode(',', $captionAsset->getTags()) as $tag) {
         $tags->addChild('tag', kMrssManager::stringToSafeXml($tag));
     }
 }