/**
  * @param FilterInterface $filter
  */
 protected function compileFilterLimit(FilterInterface $filter)
 {
     $start = $filter->getStart();
     $limit = $filter->getLimit();
     if ($start !== null && $start > 0) {
         if ($limit === null) {
             throw new InvalidArgumentException('A limit value must be supplied when start is set');
         }
         $this->limit = $start . ', ' . $limit;
     } else {
         if ($limit !== null) {
             $this->limit = $limit;
         }
     }
 }
 /**
  * @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');
 }