/**
* Resolve a property and follow shadow locale if it has one.
*
* @param Row $row
* @param string $name
* @param string $locale
* @param string $shadowLocale
*
* @return mixed
*/
private function resolveProperty(Row $row, $name, $locale, $shadowLocale = null)
{
if (array_key_exists(sprintf('node.%s', $name), $row->getValues())) {
return $row->getValue($name);
}
if (null !== $shadowLocale && !in_array($name, self::$nonFallbackProperties)) {
$locale = $shadowLocale;
}
$name = sprintf('%s%s', $locale, ucfirst($name));
return $row->getValue($name);
}