/**
  * @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();
     }
 }