protected function resolveClausesAndStructure()
 {
     $attribute = $this->filter->getResolvedAttribute();
     //is Dynamically Derived Attributes? __User
     if ($this->modelRelationsAndAttributesToReportAdapter->isDynamicallyDerivedAttribute($attribute)) {
         $this->resolveDynamicallyDerivedAttributeClauseAndStructure();
     } elseif ($this->modelRelationsAndAttributesToReportAdapter instanceof ModelRelationsAndAttributesToSummableReportAdapter && $this->modelRelationsAndAttributesToReportAdapter->isAttributeACalculatedGroupByModifier($attribute)) {
         $this->clauses[1] = array('attributeName' => $this->getRealAttributeName(), 'operatorType' => $this->filter->getOperator(), 'value' => $this->resolveValueForOperator(), 'modifierType' => $this->modelRelationsAndAttributesToReportAdapter->getCalculationOrModifierType($attribute));
         $this->structure = '1';
     } elseif ($this->modelRelationsAndAttributesToReportAdapter->relationIsReportedAsAttribute($attribute)) {
         $this->resolveRelationReportedAsAttributeClauseAndStructure();
     } else {
         $this->resolveNonRelationNonDerivedAttributeClauseAndStructure();
     }
 }
 /**
  * @param string $relation
  * @return bool
  */
 public function relationIsReportedAsAttribute($relation)
 {
     assert('is_string($relation)');
     if ($this->isAttributeACalculationOrModifier($relation)) {
         return false;
     }
     return parent::relationIsReportedAsAttribute($relation);
 }