public function reverseLookup(Location $location, $languageCode = null, $showAllTranslations = null, array $prioritizedLanguageList = null)
{
if ($showAllTranslations === null) {
$showAllTranslations = $this->settings['showAllTranslations'];
}
if ($prioritizedLanguageList === null) {
$prioritizedLanguageList = $this->settings['prioritizedLanguageList'];
}
$urlAliases = $this->listLocationAliases($location, false, $languageCode, $showAllTranslations, $prioritizedLanguageList);
foreach ($prioritizedLanguageList as $prioritizedLanguageCode) {
foreach ($urlAliases as $urlAlias) {
if (in_array($prioritizedLanguageCode, $urlAlias->languageCodes)) {
return $urlAlias;
}
}
}
foreach ($urlAliases as $urlAlias) {
if ($urlAlias->alwaysAvailable) {
return $urlAlias;
}
}
if (!empty($urlAliases) && $showAllTranslations) {
return reset($urlAliases);
}
throw new NotFoundException('URLAlias', $location->id);
}