public function evaluateScope(Queries\IScope $scope, Queries\IResolvedParameterRegistry $resolvedParameters) { $scopeHash = $this->scopeHash($scope, $resolvedParameters); if (!isset($this->traversableCache[$scopeHash])) { $this->traversableCache[$scopeHash] = ScopeEvaluator::evaluate($scope, $resolvedParameters); } return $this->traversableCache[$scopeHash]; }
protected function executeOperation(Queries\IOperationQuery $query, Queries\IResolvedParameterRegistry $resolvedParameters) { $scopedCollection = $this->queryProvider->evaluateScope($query->getScope(), $resolvedParameters); OperationEvaluator::evaluate($scopedCollection, $query->getOperation(), $resolvedParameters); }