Пример #1
0
        /// <summary>
        /// Formats a SPARQL Aggregate
        /// </summary>
        /// <param name="agg">SPARQL Aggregate</param>
        /// <returns></returns>
        protected virtual String FormatAggregate(ISparqlAggregate agg)
        {
            StringBuilder output = new StringBuilder();

            if (SparqlSpecsHelper.IsAggregateFunctionKeyword(agg.Functor))
            {
                output.Append(agg.Functor);
            }
            else
            {
                String aggQName;
                if (this._qnameMapper.ReduceToQName(agg.Functor, out aggQName))
                {
                    output.Append(aggQName);
                }
                else
                {
                    output.Append('<');
                    output.Append(this.FormatUri(agg.Functor));
                    output.Append('>');
                }
            }

            output.Append('(');
            List <ISparqlExpression> args = agg.Arguments.ToList();

            for (int i = 0; i < args.Count; i++)
            {
                output.Append(this.FormatExpression(args[i]));
                if (i < args.Count - 1 && !(args[i] is DistinctModifier))
                {
                    output.Append(", ");
                }
            }
            output.Append(')');

            return(output.ToString());
        }