/**
  * @return array|null
  */
 protected function getDerivedAttributesData()
 {
     if (!isset(self::$derivedAttributesData[get_class($this->model)]) || self::$derivedAttributesData[get_class($this->model)] === null) {
         $attributes = array();
         $calculatedAttributes = CalculatedDerivedAttributeMetadata::getAllByModelClassName(get_class($this->model));
         foreach ($calculatedAttributes as $attribute) {
             $attributes[$attribute->name] = array('label' => $attribute->getLabelByLanguage(Yii::app()->language), 'derivedAttributeType' => 'CalculatedNumber');
         }
         self::$derivedAttributesData[get_class($this->model)] = array_merge($attributes, $this->rules->getDerivedAttributeTypesData($this->model));
     }
     return self::$derivedAttributesData[get_class($this->model)];
 }
 /**
  * Gets derived attribute date by report rules
  * @return array
  */
 protected function getDerivedAttributesDataByReportRules()
 {
     return $this->rules->getDerivedAttributeTypesData($this->model);
 }