code: private function calculateSubfilter($operation, IFilter $filter)
      {
          if (!is_array($operation)) {
              throw new \RuntimeException('Error Processing subfilter: ' . var_export($operation, true), 1);
          }
  
          switch ($operation['operation']) {
              case 'AND':
              case 'OR':
                  $this->getAndOrFilter($filter, $operation);
                  break;
  
              case '=':
              case '>':
              case '<':
                  $this->getFilterForComparingOperator(
                      $this->getAttributeFromFilterOperation($operation),
                      $filter,
                      $operation
                  );
                  break;
  
              case 'IN':
                  $this->getFilterForInList($filter, $operation);
                  break;
  
              case 'LIKE':
                  $this->getFilterForLike(
                      $this->getAttributeFromFilterOperation($operation),
                      $filter,
                      $operation
                  );
                  break;
  
              default:
                  throw new \RuntimeException(
                      'Error processing filter array - unknown operation ' . var_export($operation, true),
                      1
                  );
          }
      }
docs: Combine a filter in standard filter array notation.
  
  Supported operations are:
  operation      needed arguments     argument type.
  AND
  'children'           array
  OR
  'children'           array
  =
  'property'           string (the name of a property)
  'value'              literal
  >
  'property'           string (the name of a property)
  'value'              literal
  <
  'property'           string (the name of a property)
  'value'              literal
  IN
  'property'           string (the name of a property)
  'values'             array of literal
  
  @param array   $operation The filter to be combined into the passed filter object.
  
  @param IFilter $filter    The filter object where the rules shall get appended to.
  
  @return void
  
  @throws \RuntimeException When an improper filter condition is encountered, an exception is thrown.