protected function evaluateProcessors($valueToProcess, $configurationWithEventualProcessors, $typoScriptPath, AbstractTypoScriptObject $contextObject = null)
{
if (isset($configurationWithEventualProcessors['__meta']['process'])) {
$processorConfiguration = $configurationWithEventualProcessors['__meta']['process'];
$positionalArraySorter = new PositionalArraySorter($processorConfiguration, '__meta.position');
foreach ($positionalArraySorter->getSortedKeys() as $key) {
$processorPath = $typoScriptPath . '/__meta/process/' . $key;
if ($this->evaluateIfCondition($processorConfiguration[$key], $processorPath, $contextObject) === false) {
continue;
}
if (isset($processorConfiguration[$key]['expression'])) {
$processorPath .= '/expression';
}
$this->pushContext('value', $valueToProcess);
$result = $this->evaluateInternal($processorPath, self::BEHAVIOR_EXCEPTION, $contextObject);
if ($this->getLastEvaluationStatus() !== static::EVALUATION_SKIPPED) {
$valueToProcess = $result;
}
$this->popContext();
}
}
return $valueToProcess;
}