/** * @param ModelRelationsAndAttributesToReportAdapter $modelToReportAdapter * @param RedBeanModel $precedingModel * @param null|string $precedingRelation * @throws NotSupportedException if the treeType is invalid or null */ protected function getAttributesData(ModelRelationsAndAttributesToReportAdapter $modelToReportAdapter, RedBeanModel $precedingModel = null, $precedingRelation = null) { if ($this->treeType == ComponentForReportForm::TYPE_FILTERS) { return $modelToReportAdapter->getAttributesForFilters(); } elseif ($this->treeType == ComponentForReportForm::TYPE_DISPLAY_ATTRIBUTES) { return $modelToReportAdapter->getAttributesForDisplayAttributes($this->report->getGroupBys(), $precedingModel, $precedingRelation); } elseif ($this->treeType == ComponentForReportForm::TYPE_ORDER_BYS) { return $modelToReportAdapter->getAttributesForOrderBys($this->report->getGroupBys(), $this->report->getDisplayAttributes(), $precedingModel, $precedingRelation); } elseif ($this->treeType == ComponentForReportForm::TYPE_GROUP_BYS) { return $modelToReportAdapter->getAttributesForGroupBys($precedingModel, $precedingRelation); } elseif ($this->treeType == ComponentForReportForm::TYPE_DRILL_DOWN_DISPLAY_ATTRIBUTES) { return $modelToReportAdapter->getForDrillDownAttributes($precedingModel, $precedingRelation); } else { throw new NotSupportedException(); } }