Exemplo n.º 1
0
        /// <summary>
        /// Order BY clause with prefSQL keywords (SUMRANK or BESTRANK)
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override PrefSQLModel VisitOrderBySpecial(PrefSQLParser.OrderBySpecialContext context)
        {
            SQLCommon.Ordering ordering = SQLCommon.Ordering.AsIs;
            if (context.op.Type == PrefSQLParser.K_SUMRANK)
            {
                ordering = SQLCommon.Ordering.RankingSummarize;
            }
            else if (context.op.Type == PrefSQLParser.K_BESTRANK)
            {
                ordering = SQLCommon.Ordering.RankingBestOf;
            }
            Model.Ordering = ordering;

            return(base.VisitOrderBySpecial(context));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create the ORDER BY-Clause from the preference model
        /// </summary>
        /// <param name="model"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public string GetSortClause(PrefSQLModel model, SQLCommon.Ordering type)
        {
            string strSQL = "";

            switch (type)
            {
            case SQLCommon.Ordering.AttributePosition:
                strSQL = GetSortAttributePositionClause(model);
                break;

            case SQLCommon.Ordering.RankingSummarize:
                strSQL = GetSortRankingSumClause(model);
                break;

            case SQLCommon.Ordering.RankingBestOf:
                strSQL = GetSortRankingBestOfClause(model);
                break;

            case SQLCommon.Ordering.AsIs:
                strSQL = "";     //Return no ORDER BY Clause
                break;

            case SQLCommon.Ordering.Random:
                strSQL = GetSortRandomClause();
                break;

            case SQLCommon.Ordering.EntropyFunction:
            {
                strSQL = GetSortEntropyValue(model);
                break;
            }
            }

            if (strSQL.Length > 0)
            {
                strSQL = " ORDER BY " + strSQL;
            }
            return(strSQL);
        }