public static void validateFilterDefinition()

in java/clickhouse-client/src/main/java/com/epam/deltix/clickhouse/util/SelectQueryHelper.java [324:357]


    public static void validateFilterDefinition(FilterDefinition<String> filter, Map<String, ColumnDeclaration> columnDeclarations) {
        String fieldName = filter.getFieldExpression();
        FilterType filterType = filter.getFilterType();
        List<String> filterValue = filter.getFilterValue();

        if (fieldName == null || filterType == null || filterValue == null)
            throw illegalFilterValue();

        ColumnDeclaration column = columnDeclarations.get(fieldName);

        if (column == null)
            throw new IllegalArgumentException(String.format("Illegal filter for unknown column '%s'.", fieldName));

        DataTypes columnStrippedType = stripNullable(column.getDbDataType()).getType();

        if (!isAcceptableFilter(filterType, columnStrippedType))
            throw unsupportedFilterException(filterType, column, stripNullable(column.getDbDataType()).getType());

        if (columnStrippedType.equals(DataTypes.STRING) ||
                columnStrippedType.equals(DataTypes.FIXED_STRING)) {
            for (String item : filterValue) {
                if (item == null)
                    throw illegalFilterValue(filter);
            }
        } else {
            for (String item : filterValue) {
                if (StringUtils.isBlank(item))
                    throw illegalFilterValue(filter);
            }
        }

        if (!isAcceptableFilterValue(filterValue, filterType))
            throw illegalFilterValue(filter);
    }