/**
  * Loads URL alias by given $id.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException
  *
  * @param string $id
  *
  * @return \eZ\Publish\API\Repository\Values\Content\URLAlias
  */
 public function load($id)
 {
     $spiUrlAlias = $this->urlAliasHandler->loadUrlAlias($id);
     $path = $this->extractPath($spiUrlAlias, null, $this->settings['showAllTranslations'], $this->settings['prioritizedLanguageList']);
     if ($path === false) {
         throw new NotFoundException('URLAlias', $id);
     }
     return $this->buildUrlAliasDomainObject($spiUrlAlias, $path);
 }
 /**
  * Publishes URL aliases in all languages for the given parameters.
  *
  * @throws \Exception
  *
  * @param int|string $locationId
  * @param int|string $parentLocationId
  * @param int|string $contentId
  *
  * @return int
  */
 protected function publishAliases($locationId, $parentLocationId, $contentId)
 {
     $content = $this->contentService->loadContent($contentId);
     $urlAliasNames = $this->nameSchemaResolver->resolveUrlAliasSchema($content);
     foreach ($urlAliasNames as $languageCode => $name) {
         try {
             $this->setMigrationTable();
             $this->urlAliasHandler->publishUrlAliasForLocation($locationId, $parentLocationId, $name, $languageCode, $content->contentInfo->alwaysAvailable);
             $this->setDefaultTable();
         } catch (Exception $e) {
             $this->setDefaultTable();
             throw $e;
         }
     }
     return count($urlAliasNames);
 }