public function serialize(AbstractQueryRequest $request) { $parameters = parent::serialize($request); $columns = NULL; // preparing dimension-related column if (isset($request->dimensions)) { foreach ($request->dimensions as $dimension) { if (isset($dimension->requestColumnIndex)) { $columns[] = ParameterNameHelper::assemble($dimension->name); } if (isset($dimension->columns)) { foreach ($dimension->columns as $column) { $columns[] = ParameterNameHelper::assemble($dimension->name, $column->name); } } } } // preparing measure-related columns if (isset($request->measures)) { foreach ($request->measures as $measure) { $columns[] = $measure->name; } } // serializing columns if (isset($columns)) { ArrayHelper::merge( $parameters, $this->serializeValue( DataQueryControllerUIParameterNames::COLUMNS, DataQueryControllerUIRequestPreparer::prepareColumns($columns))); } // serializing query if (isset($request->queries)) { $queryParameters = NULL; foreach ($request->queries as $query) { if ($query instanceof __AbstractCubeQueryRequest_DimensionQuery) { if (isset($query->columns)) { foreach ($query->columns as $column) { ArrayHelper::merge( $queryParameters, DataQueryControllerUIRequestPreparer::prepareParameter( ParameterNameHelper::assemble($query->name, $column->name), $column->values)); } } } elseif ($query instanceof __AbstractCubeQueryRequest_FactsDatasetColumnQuery) { ArrayHelper::merge($queryParameters, DataQueryControllerUIRequestPreparer::prepareParameter($query->name, $query->values)); } elseif ($query instanceof __AbstractCubeQueryRequest_MeasureQuery) { ArrayHelper::merge($queryParameters, DataQueryControllerUIRequestPreparer::prepareParameter($query->name, $query->values)); } } ArrayHelper::merge($parameters, $this->serializeValue(DataQueryControllerUIParameterNames::PARAMETERS, $queryParameters)); } return $parameters; }
protected function serialize(AbstractQueryRequest $request) { $parameters = parent::serialize($request); // serializing query parameters if (isset($request->queries)) { foreach ($request->queries as $index => $query) { $parameterName = DataQueryControllerUIParameterNames::PARAMETERS; if ($index != 0) { $parameterName .= $index; } if (isset($query)) { $queryParameters = NULL; foreach ($query as $name => $value) { ArrayHelper::merge($queryParameters, DataQueryControllerUIRequestPreparer::prepareParameter($name, $value)); } ArrayHelper::merge($parameters, $this->serializeValue($parameterName, $queryParameters)); } } } return $parameters; }