protected function resolveNonRelationNonDerivedAttributeClauseAndStructure()
 {
     if ($this->filter->getValueElementType() == 'MixedDateTypesForReport') {
         $this->resolveDateAttributeClauseAndStructure();
     } elseif ($this->filter->getValueElementType() == 'MixedNumberTypes') {
         $this->resolveNumericAttributeClauseAndStructure();
     } elseif ($this->filter->getValueElementType() == 'BooleanForWizardStaticDropDown') {
         $this->resolveBooleanAttributeClauseAndStructure();
     } else {
         $this->resolveTextAttributeClauseAndStructure();
     }
 }
 /**
  * @param string $moduleClassName
  * @param string $modelClassName
  * @param string $reportType
  * @param array $filterData
  * @return array
  */
 protected static function sanitizeFilterData($moduleClassName, $modelClassName, $reportType, $filterData)
 {
     assert('is_string($moduleClassName)');
     assert('is_string($modelClassName)');
     assert('is_string($reportType)');
     assert('is_array($filterData)');
     $filterForSanitizing = new FilterForReportForm($moduleClassName, $moduleClassName::getPrimaryModelName(), $reportType);
     $filterForSanitizing->setAttributes($filterData);
     $valueElementType = null;
     $valueElementType = $filterForSanitizing->getValueElementType();
     if ($valueElementType == 'MixedDateTypesForReport') {
         if (isset($filterData['value']) && $filterData['value'] !== null) {
             $filterData['value'] = DateTimeUtil::resolveValueForDateDBFormatted($filterData['value']);
         }
         if (isset($filterData['secondValue']) && $filterData['secondValue'] !== null) {
             $filterData['secondValue'] = DateTimeUtil::resolveValueForDateDBFormatted($filterData['secondValue']);
         }
     }
     return $filterData;
 }