public function prepareDatasetQueryRequest(DataQueryControllerDatasetRequest $request) { $datasourceRequest = new DatasetQueryRequest($request->datasetName); $datasourceRequest->addCompositeQueryValues($request->parameters); $datasourceRequest->addColumns($request->columns); $datasourceRequest->addOrderByColumns($request->orderBy); $datasourceRequest->setPagination($request->limit, $request->startWith); return $datasourceRequest; }
public function prepareQueryRequest(DataQueryControllerDatasetRequest $request) { $datasourceRequest = new DatasetQueryRequest($request->datasetName); // needs to be called before any additional methods are called $datasourceRequest->addOptions($request->options); $datasourceRequest->addCompositeQueryValues($request->parameters); $datasourceRequest->addColumns($request->columns); $datasourceRequest->addOrderByColumns($request->orderBy); $datasourceRequest->setPagination($request->limit, $request->startWith); return $datasourceRequest; }
public function loadDatasetMetaData(DataControllerCallContext $callcontext, DatasetMetaData $dataset) { $environment_metamodel = data_controller_get_environment_metamodel(); $datasource = $environment_metamodel->getDataSource($dataset->datasourceName); $queryRequest = new DatasetQueryRequest($dataset->name); // we do not need to return any records $queryRequest->setPagination(0); $statements = $this->prepareDatasetQueryStatements($callcontext, $queryRequest); $sql = $this->assembleDatasetQueryStatements($callcontext, $queryRequest, $statements); // applying pagination $this->applyPagination($queryRequest, $sql); $loadedDatasetMetaData = $this->processDatasetMetaData($callcontext, $datasource, $sql); // processing loaded columns $dataset->initializeColumnsFrom($loadedDatasetMetaData->columns); }
protected function selectBoundary4DatasetRequest(DataControllerCallContext $callcontext, AbstractDatasetQueryRequest $request, $datasetName, $columnName) { // looking for an index where this instance is used. Rest of the queries will be ignored. // Data for ignored queries will be calculated during subsequent requests to different instances of this class $selectedIndex = NULL; if (isset($request->queries)) { foreach ($request->queries as $index => $query) { foreach ($query as $values) { foreach ($values as $value) { if ($this->operatorHandler === $value) { $selectedIndex = $index; break 3; } } } } } $expressionRequest = new DatasetQueryRequest($request->getDatasetName()); // needs to be called before any additional methods are called $expressionRequest->addOptions($request->options); // returning only observing column $expressionRequest->addColumn($columnName); // excluding records with NULL value for the observing column $expressionRequest->addQueryValue( 0, $columnName, OperatorFactory::getInstance()->initiateHandler(NotEqualOperatorHandler::OPERATOR__NAME, NULL)); // adding support for queries except this operator handler if (isset($selectedIndex)) { foreach ($request->queries[$selectedIndex] as $name => $values) { foreach ($values as $value) { if ($this->shouldValueBeSkipped($value)) { continue; } if ($this->operatorHandler === $value) { continue; } $expressionRequest->addQueryValue(0, $name, $value); } } } else { // we have this situation because we call this operator for a request where this operator is not used } // sorting data $expressionRequest->addOrderByColumn( ColumnBasedComparator_AbstractSortingConfiguration::assembleDirectionalColumnName($columnName, $this->isSortAscending())); // limiting response to one record $expressionRequest->setPagination(1, 0); return $this->processDatasetExpressionRequest($callcontext, $expressionRequest, $columnName); }
protected function selectBoundary4DatasetRequest(DataControllerCallContext $callcontext, AbstractDatasetQueryRequest $request, $datasetName, $columnName) { // looking for an index where this instance is used. Rest of the queries will be ignored. // Data for ignored queries will be calculated during subsequent requests to different instances of this class $selectedIndex = NULL; if (isset($request->queries)) { foreach ($request->queries as $index => $query) { foreach ($query as $values) { foreach ($values as $value) { if ($this->operatorHandler === $value) { $selectedIndex = $index; break 3; } } } } } $expressionRequest = new DatasetQueryRequest($request->getDatasetName()); // returning only observing column $expressionRequest->addColumn($columnName); // excluding records with NULL value for the observing column $expressionRequest->addQueryValue(0, $columnName, data_controller_get_operator_factory_instance()->initiateHandler(NotEqualOperatorHandler::$OPERATOR__NAME, NULL)); // adding support for queries except this operator handler if (isset($selectedIndex)) { foreach ($request->queries[$selectedIndex] as $name => $values) { foreach ($values as $value) { if ($value->isSubsetBased()) { // skipping other instances which are based on subset of data if their weight is greater than of this operator if (isset($value->weight) && $value->weight > $this->operatorHandler->weight) { continue; } } if ($this->operatorHandler === $value) { continue; } $expressionRequest->addQueryValue(0, $name, $value); } } } else { // we have this situation because we call this operator for a request where thus operator is not used } // sorting data $expressionRequest->addOrderByColumn(PropertyBasedComparator_DefaultSortingConfiguration::assembleDirectionalPropertyName($columnName, $this->isSortAscending())); // limiting response to one record $expressionRequest->setPagination(1, 0); return $this->processDatasetExpressionRequest($callcontext, $expressionRequest, $columnName); }