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; }
public function serialize(AbstractQueryRequest $request) { $parameters = parent::serialize($request); // serializing column names if (isset($request->columns)) { ArrayHelper::merge( $parameters, $this->serializeValue( DataQueryControllerUIParameterNames::COLUMNS, DataQueryControllerUIRequestPreparer::prepareColumns($request->columns))); } return $parameters; }