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
                );
        }
    }
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
                );
        }
    }
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 ) ; } }
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.
Combine a filter in standard filter array notation .