public static function checkCondition(ModelInterface $objParentModel, $arrFilter)
    {
        switch ($arrFilter['operation']) {
            case 'AND':
                return self::checkAndFilter($objParentModel, $arrFilter['children']);

            case 'OR':
                return self::checkOrFilter($objParentModel, $arrFilter['children']);

            case '=':
                return (self::getConditionValue($arrFilter, $objParentModel) == $arrFilter['value']);

            case '>':
                return (self::getConditionValue($arrFilter, $objParentModel) > $arrFilter['value']);

            case '<':
                return (self::getConditionValue($arrFilter, $objParentModel) < $arrFilter['value']);

            case 'IN':
                return \in_array($objParentModel->getProperty($arrFilter['property']), $arrFilter['values']);

            case 'LIKE':
                throw new DcGeneralRuntimeException('LIKE unsupported as of now.');

            default:
        }

        throw new DcGeneralRuntimeException(
            'Error processing filter array - unknown operation ' . \var_export($arrFilter, true),
            1
        );
    }