private bool IsSupported(FilterFunctions op, Procedure procedure, Parameter parameter)
        {
            if (op == FilterFunctions.None)
                return false;

            var fullTextFunctions = new[] { 
                FilterFunctions.FullTextContains, 
                FilterFunctions.NotFullTextContains,
                FilterFunctions.FreeText,
                FilterFunctions.NotFreeText
            };

            var likeFunctions = new[] { 
                FilterFunctions.StartsWith, 
                FilterFunctions.EndsWith,
                FilterFunctions.Contains,
                FilterFunctions.NotContains
            };

            var parameterFunctions = GetFilterFunctions(parameter);
            if ((parameterFunctions & op) != op)
                return false;

            if (fullTextFunctions.Contains(op))
            {
                if (!IsFullTextCompatible(parameter.DbType))
                    return false;
            }

            if (op == FilterFunctions.StartsWith || op == FilterFunctions.EndsWith || op == FilterFunctions.Contains || op == FilterFunctions.NotContains)
            {
                if (!IsLikeCompatible(parameter.DbType))
                    return false;
            }

            return true;
        }