protected function executeDatasetCountRequest(DataQueryControllerDatasetRequest $request) { $callcontext = $this->prepareCallContext(); $requestPreparer = new DataSourceDatasetQueryRequestPreparer(); $datasetCountRequest = $requestPreparer->prepareDatasetCountRequest($request); $this->prepareDatasetRequestMetaData($datasetCountRequest); $datasetResultFormatter = isset($request->resultFormatter) ? $request->resultFormatter : $this->getDefaultResultFormatter(); $datasetResultFormatter->adjustDatasetCountRequest($callcontext, $datasetCountRequest); LogHelper::log_debug($request); $datasetName = $datasetCountRequest->getDatasetName(); return $this->getDataSourceQueryHandlerByDatasetName($datasetName)->countDatasetRecords($callcontext, $datasetCountRequest, $datasetResultFormatter); }
protected function executeDatasetCountRequest(DataQueryControllerDatasetRequest $request) { $environment_metamodel = data_controller_get_environment_metamodel(); $metamodel = data_controller_get_metamodel(); $callcontext = $this->prepareCallContext(); $requestPreparer = new DataSourceDatasetQueryRequestPreparer(); $datasetCountRequest = $requestPreparer->prepareCountRequest($request); $this->prepareDatasetRequestMetaData($datasetCountRequest); if (isset($request->resultFormatter)) { $request->resultFormatter->adjustDatasetCountRequest($callcontext, $datasetCountRequest); } LogHelper::log_debug($datasetCountRequest); $datasetName = $datasetCountRequest->getDatasetName(); $dataset = $metamodel->getDataset($datasetName); $datasource = $environment_metamodel->getDataSource($dataset->datasourceName); $isCacheSupported = $this->isCacheSupported($datasource); $cache = $isCacheSupported ? new DataQueryControllerCacheProxy($datasetCountRequest) : NULL; list($data, $cacheHit) = isset($cache) ? $cache->getCachedResult() : array(NULL, FALSE); if (!$cacheHit) { $data = RequestChainFactory::getInstance()->initializeChain()->countDatasetRecords( $this->lookupDataSourceHandler($datasource->type), $callcontext, $datasetCountRequest); if ($isCacheSupported) { $cache->cacheResult($data); } } return $data; }