/** * @TODO: can we avoid use of entity manager here? * * @param ApplicationLocalization $page * @param EntityManager $entityManager * @return PageApplication */ public function createApplicationFor(ApplicationLocalization $localization, EntityManager $entityManager) { $applicationPage = $localization->getMaster(); if (!$applicationPage instanceof ApplicationPage) { throw new \UnexpectedValueException('Expecting ApplicationPage to be master of [%], [%s] received', $localization->getId(), get_class($applicationPage)); } $appId = $applicationPage->getApplicationId(); // @TODO: this looks lame $application = clone $this->getApplication($appId); $application->setApplicationLocalization($localization); $application->setEntityManager($entityManager); return $application; }
/** * @param ApplicationLocalization $localization * @return array */ private function getApplicationPageLocalizationData(ApplicationLocalization $localization) { $applicationId = $localization->getMaster()->getApplicationId(); $application = $this->getPageApplicationManager()->getApplication($applicationId); $applicationData = $this->getPageApplicationData($application); $applicationData['application_id'] = $applicationData['id']; return $applicationData; }