Search in sources :

Example 1 with Flag

use of mondrian.olap.fun.sort.Sorter.Flag in project mondrian by pentaho.

the class OrderFunDef method buildKeySpecList.

private void buildKeySpecList(List<SortKeySpec> keySpecList, ResolvedFunCall call, ExpCompiler compiler) {
    final int argCount = call.getArgs().length;
    // args[0] is the input set
    int j = 1;
    Calc key;
    Flag dir;
    Exp arg;
    while (j < argCount) {
        arg = call.getArg(j);
        key = compiler.compileScalar(arg, true);
        j++;
        if ((j >= argCount) || (call.getArg(j).getCategory() != Category.Symbol)) {
            dir = Flag.ASC;
        } else {
            dir = getLiteralArg(call, j, Flag.ASC, Flag.class);
            j++;
        }
        keySpecList.add(new SortKeySpec(key, dir));
    }
}
Also used : SortKeySpec(mondrian.olap.fun.sort.SortKeySpec) MemberArrayValueCalc(mondrian.calc.impl.MemberArrayValueCalc) Calc(mondrian.calc.Calc) ConstantCalc(mondrian.calc.impl.ConstantCalc) IterCalc(mondrian.calc.IterCalc) MemberCalc(mondrian.calc.MemberCalc) AbstractListCalc(mondrian.calc.impl.AbstractListCalc) GenericIterCalc(mondrian.calc.impl.GenericIterCalc) MemberValueCalc(mondrian.calc.impl.MemberValueCalc) ValueCalc(mondrian.calc.impl.ValueCalc) AbstractCalc(mondrian.calc.impl.AbstractCalc) DummyExp(mondrian.calc.DummyExp) Exp(mondrian.olap.Exp) Flag(mondrian.olap.fun.sort.Sorter.Flag)

Aggregations

Calc (mondrian.calc.Calc)1 DummyExp (mondrian.calc.DummyExp)1 IterCalc (mondrian.calc.IterCalc)1 MemberCalc (mondrian.calc.MemberCalc)1 AbstractCalc (mondrian.calc.impl.AbstractCalc)1 AbstractListCalc (mondrian.calc.impl.AbstractListCalc)1 ConstantCalc (mondrian.calc.impl.ConstantCalc)1 GenericIterCalc (mondrian.calc.impl.GenericIterCalc)1 MemberArrayValueCalc (mondrian.calc.impl.MemberArrayValueCalc)1 MemberValueCalc (mondrian.calc.impl.MemberValueCalc)1 ValueCalc (mondrian.calc.impl.ValueCalc)1 Exp (mondrian.olap.Exp)1 SortKeySpec (mondrian.olap.fun.sort.SortKeySpec)1 Flag (mondrian.olap.fun.sort.Sorter.Flag)1