public function assemble(AbstractSQLDataSourceQueryHandler $datasourceHandler, DataControllerCallContext $callcontext, DatasetMetaData $dataset, array $columnNames = NULL) { $statement = new Statement(); $requestedColumnNames = self::prepareRequestedColumnNames($columnNames); ArrayHelper::mergeArrays($statement->tables, self::prepareTableSections4Statement($datasourceHandler, $callcontext, $requestedColumnNames, TRUE)); return $statement; }
public function initiateHandler($operatorName) { $values = func_get_args(); array_shift($values); $handlerConfiguration = $this->getHandlerConfiguration($operatorName); $classname = $handlerConfiguration['handler']['classname']; $handlerClass = new ReflectionClass($classname); $params = NULL; // first parameter is the operator configuration $operatorMetaData = $this->getOperatorMetaData($operatorName); $params[] = $operatorMetaData; // next are parameters which represent values if (count($values) === 1 && is_array($values[0])) { $parameterCount = count($values[0]); $expectedMinimumParameterCount = isset($operatorMetaData) ? $operatorMetaData->getRequiredParameterCount() : 0; $expectedTotalParameterCount = isset($operatorMetaData) ? $operatorMetaData->getParameterCount() : 0; if ($parameterCount == $expectedTotalParameterCount) { ArrayHelper::mergeArrays($params, $values[0]); } elseif ($expectedTotalParameterCount === 1) { $params[] = $values[0]; } elseif ($parameterCount < $expectedTotalParameterCount && $parameterCount >= $expectedMinimumParameterCount) { // we have some optional parameters which do not need to be provided ArrayHelper::mergeArrays($params, $values[0]); } else { throw new IllegalArgumentException(t("Inconsistent number of arguments for '@name' operator", array('@name' => $operatorName))); } } else { ArrayHelper::mergeArrays($params, $values); } return $handlerClass->newInstanceArgs($params); }
public function merge(Statement $statement) { ArrayHelper::mergeArrays($this->tables, $statement->tables); ArrayHelper::mergeArrays($this->conditions, $statement->conditions); ArrayHelper::mergeArrays($this->groupByColumns, $statement->groupByColumns); ArrayHelper::mergeArrays($this->havingConditions, $statement->havingConditions); }
protected function mergeQueryValues(&$parameters, $request) { $this->checkRequestQuery($request); if (isset($request->queries)) { $query = $request->queries[0]; ArrayHelper::mergeArrays($parameters, $query); } }
public function log($level, &$message) { if ($message instanceof StatementLogMessage) { $statementLogMessage = $message; if (is_array($statementLogMessage->statement)) { ArrayHelper::mergeArrays(self::$statements, $statementLogMessage->statement); } else { self::$statements[$statementLogMessage->type][] = $statementLogMessage->statement; } } }
public function getHandler($type) { if (isset($this->handlerInstances[$type])) { return $this->handlerInstances[$type]; } $handlerConfiguration = $this->getHandlerConfiguration($type); $extensionConfiguration = $this->getExtensionConfiguration($type); $combinedExtensionConfigurations = NULL; // adding generic configuration ArrayHelper::mergeArrays($combinedExtensionConfigurations, $extensionConfiguration['extensions']); // adding handler specific configurations if (isset($handlerConfiguration['extensions'])) { ArrayHelper::mergeArrays($combinedExtensionConfigurations, $handlerConfiguration['extensions']); unset($handlerConfiguration['extensions']); } $classname = $handlerConfiguration['handler']; $handler = new $classname($type, $combinedExtensionConfigurations); $this->handlerInstances[$type] = $handler; return $handler; }
public function assemble(AbstractSQLDataSourceQueryHandler $datasourceHandler, DataControllerCallContext $callcontext, DatasetMetaData $dataset, array $columnNames = NULL) { $statement = new Statement(); $requestedColumnNames = self::prepareRequestedColumnNames($columnNames); $tableDates = self::prepareTableSection($datasourceHandler, $callcontext, $requestedColumnNames); $statement->tables[] = $tableDates; $tableDayOfWeek = self::prepareDefTableSection($datasourceHandler, $callcontext, $requestedColumnNames); $isDayOfWeekRequired = isset($tableDayOfWeek->columns); $monthTableSections = DateDimensionMonthDatasetAssembler::prepareTableSections4Statement($datasourceHandler, $callcontext, $requestedColumnNames, FALSE); $isMonthRequired = isset($monthTableSections); if ($isDayOfWeekRequired) { $tableDayOfWeek->conditions[] = new JoinConditionSection('day_of_week_def_id', new TableColumnConditionSectionValue(self::$TABLE_ALIAS_SUFFIX__DATES, 'day_of_week_def_id')); $statement->tables[] = $tableDayOfWeek; } if ($isMonthRequired) { $tableMonths = $monthTableSections[0]; $tableMonths->conditions[] = new JoinConditionSection('month_id', new TableColumnConditionSectionValue(self::$TABLE_ALIAS_SUFFIX__DATES, 'month_id')); ArrayHelper::mergeArrays($statement->tables, $monthTableSections); } return $statement; }
public function combineFrom(ReferenceRoute $route) { ArrayHelper::mergeArrays($this->segmentLinkIds, $route->segmentLinkIds); $this->weight += $route->weight; }