/**
* {@inheritdoc}
*/
public function save($mediaId, $formatKey, array $data)
{
if (!isset($this->formats[$formatKey])) {
throw new FormatNotFoundException($formatKey);
}
$media = $this->mediaManager->getEntityById($mediaId);
$fileVersion = $this->getFileVersionForMedia($media);
$formatOptions = $fileVersion->getFormatOptions()->get($formatKey);
if (!isset($formatOptions)) {
$formatOptions = new FormatOptions();
$formatOptions->setFileVersion($fileVersion);
$fileVersion->addFormatOptions($formatOptions);
$formatOptions->setFormatKey($formatKey);
}
$formatOptions = $this->setDataOnEntity($formatOptions, $data);
$fileVersion->increaseSubVersion();
$this->em->persist($formatOptions);
$this->em->persist($fileVersion);
$this->purgeMedia($mediaId, $fileVersion);
return $formatOptions;
}