public function processUpdate(FormActionEvent $event)
 {
     /** @var \EzSystems\RepositoryForms\Data\Language\LanguageUpdateData|\EzSystems\RepositoryForms\Data\Language\LanguageCreateData $languageData */
     $languageData = $event->getData();
     if ($languageData->isNew()) {
         $language = $this->languageService->createLanguage($languageData);
     } else {
         // As there is no update struct for language service, we first update name if it has changed
         $language = $languageData->language;
         if ($languageData->name !== $language->name) {
             $language = $this->languageService->updateLanguageName($language, $languageData->name);
         }
         // check if we should enable / disable language
         if ($languageData->enabled !== $language->enabled) {
             if ($languageData->enabled) {
                 $language = $this->languageService->enableLanguage($language);
             } else {
                 $language = $this->languageService->disableLanguage($language);
             }
         }
     }
     $languageData->setLanguage($language);
 }
 /**
  * Disables a language
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If user does not have access to content translations
  *
  * @param \eZ\Publish\API\Repository\Values\Content\Language $language
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Language
  */
 public function disableLanguage(Language $language)
 {
     $returnValue = $this->service->disableLanguage($language);
     $this->signalDispatcher->emit(new DisableLanguageSignal(array('languageId' => $language->id)));
     return $returnValue;
 }