sourceValidator = $sourceValidator; $this->sourceResource = $sourceResource; $this->logger = $logger; } /** * @inheritdoc */ public function execute(SourceInterface $source) { $validationResult = $this->sourceValidator->validate($source); if (!$validationResult->isValid()) { throw new ValidationException(__('Validation Failed'), null, 0, $validationResult); } try { $this->sourceResource->save($source); $source->getSourceCode(); } catch (\Exception $e) { $this->logger->error($e->getMessage()); throw new CouldNotSaveException(__('Could not save Source'), $e); } } }