protected function buildArgumentEvaluationAccessCode($argumentAccess, &$useGlobalObjects = false)
{
if (is_array($argumentAccess)) {
$valuesAccessCodes = [];
foreach ($argumentAccess as $singleValue) {
$valuesAccessCodes[] = $this->buildArgumentEvaluationAccessCode($singleValue);
}
$argumentAccessCode = 'array(' . implode(', ', $valuesAccessCodes) . ')';
} else {
$objectAccess = explode('.', $argumentAccess, 2);
if (count($objectAccess) === 2 && $objectAccess[0] === 'current') {
$objectAccess = explode('.', $objectAccess[1], 2);
if (count($objectAccess) === 1) {
$argumentAccessCode = '$globalObjects[\'' . $objectAccess[0] . '\']';
} else {
$argumentAccessCode = '\\Neos\\Utility\\ObjectAccess::getPropertyPath($globalObjects[\'' . $objectAccess[0] . '\'], \'' . $objectAccess[1] . '\')';
}
$useGlobalObjects = true;
} elseif (count($objectAccess) === 2 && $objectAccess[0] === 'this') {
$argumentAccessCode = '\\Neos\\Utility\\ObjectAccess::getPropertyPath($currentObject, \'' . $objectAccess[1] . '\')';
} else {
$argumentAccessCode = $argumentAccess;
}
}
return $argumentAccessCode;
}