Search in sources :

Example 1 with MemberColumnPredicate

use of mondrian.rolap.agg.MemberColumnPredicate in project mondrian by pentaho.

the class SqlConstraintUtils method addMember.

/**
 * add single member constraint to predicate list
 */
private static void addMember(RolapMember member, List<StarPredicate> predicateList, RolapCube baseCube, AggStar aggStar, SqlQuery sqlQuery) {
    ArrayList<MemberColumnPredicate> memberList = new ArrayList<MemberColumnPredicate>();
    // add parents until a unique level is reached
    for (RolapMember currMember = member; currMember != null; currMember = currMember.getParentMember()) {
        if (currMember.isAll()) {
            continue;
        }
        RolapLevel level = currMember.getLevel();
        RolapStar.Column column = getLevelColumn(level, baseCube, aggStar, sqlQuery);
        ((RolapCubeLevel) level).getBaseStarKeyColumn(baseCube);
        memberList.add(new MemberColumnPredicate(column, currMember));
        if (level.isUnique()) {
            break;
        }
    }
    for (int i = memberList.size() - 1; i >= 0; i--) {
        predicateList.add(memberList.get(i));
    }
}
Also used : MemberColumnPredicate(mondrian.rolap.agg.MemberColumnPredicate) ArrayList(java.util.ArrayList) Column(mondrian.rolap.RolapStar.Column)

Aggregations

ArrayList (java.util.ArrayList)1 Column (mondrian.rolap.RolapStar.Column)1 MemberColumnPredicate (mondrian.rolap.agg.MemberColumnPredicate)1