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