public static function evaluateSource(Common\ISource $source, Queries\IResolvedParameterRegistry $resolvedParameters) { if ($source instanceof Common\Source\ArrayOrIterator) { return $resolvedParameters[$source->getId()]; } elseif ($source instanceof Common\Source\SingleValue) { return [$resolvedParameters[$source->getId()]]; } elseif ($source instanceof Common\Source\QueryScope) { return self::evaluate($source->getScope(), $resolvedParameters); } }