/** * @param FilterInterface $filter */ protected function compileFilterConditions(FilterInterface $filter) { $conjunction = ''; foreach ($filter->getConditions() as $condition) { if ($this->isSkipProperty($condition->getPropertyName())) { continue; } if ($condition->isGroup()) { $this->compileGroup($condition, $conjunction); if (count($condition->getConditions())) { $conjunction = ' AND '; } } else { $this->compileCondition($condition, $conjunction); $conjunction = ' AND '; } } }
/** * @param FilterInterface $filter * * @return array * * @throws RuntimeException */ protected function getFilterProperties(FilterInterface $filter) { if (count($filter->getConditions()) === 0) { return []; } throw new RuntimeException('please define filter properties'); }