KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > rolap > DescendantsConstraint


1 /*
2 // This software is subject to the terms of the Common Public License
3 // Agreement, available at the following URL:
4 // http://www.opensource.org/licenses/cpl.html.
5 // Copyright (C) 2004-2005 TONBELLER AG
6 // All Rights Reserved.
7 // You must accept the terms of that agreement to use this software.
8 */

9 package mondrian.rolap;
10
11 import java.util.List JavaDoc;
12 import java.util.Map JavaDoc;
13 import java.util.Collections JavaDoc;
14
15 import mondrian.olap.Evaluator;
16 import mondrian.rolap.sql.TupleConstraint;
17 import mondrian.rolap.sql.MemberChildrenConstraint;
18 import mondrian.rolap.sql.SqlQuery;
19 import mondrian.rolap.aggmatcher.AggStar;
20
21 /**
22  * TupleConstaint which restricts the result of a tuple sqlQuery to a
23  * set of parents. All parents must belong to the same level.
24  *
25  * @author av
26  * @since Nov 10, 2005
27  * @version $Id: //open/mondrian/src/main/mondrian/rolap/DescendantsConstraint.java#8 $
28  */

29 class DescendantsConstraint implements TupleConstraint {
30     List JavaDoc<RolapMember> parentMembers;
31     MemberChildrenConstraint mcc;
32
33     /**
34      * Creates a DescendantsConstraint.
35      *
36      * @param parentMembers list of parents all from the same level
37      * @param mcc the constraint that would return the children for each single parent
38      */

39     public DescendantsConstraint(
40         List JavaDoc<RolapMember> parentMembers,
41         MemberChildrenConstraint mcc)
42     {
43         this.parentMembers = parentMembers;
44         this.mcc = mcc;
45     }
46
47     public void addConstraint(
48         SqlQuery sqlQuery,
49         Map JavaDoc<RolapLevel, RolapStar.Column> levelToColumnMap)
50     {
51         if (levelToColumnMap == null) {
52             levelToColumnMap = Collections.emptyMap();
53         }
54         mcc.addMemberConstraint(
55             sqlQuery, levelToColumnMap, null, parentMembers);
56     }
57
58     public void addLevelConstraint(
59         SqlQuery sqlQuery, AggStar aggStar,
60         RolapLevel level, Map JavaDoc<RolapLevel, RolapStar.Column> levelToColumnMap)
61     {
62         mcc.addLevelConstraint(sqlQuery, aggStar, level, levelToColumnMap);
63     }
64
65     public MemberChildrenConstraint getMemberChildrenConstraint(RolapMember parent) {
66         return mcc;
67     }
68
69     /**
70      * {@inheritDoc}
71      *
72      * <p>This implementation returns null, because descendants is not cached.
73      */

74     public Object JavaDoc getCacheKey() {
75         return null;
76     }
77
78     public Evaluator getEvaluator() {
79         return null;
80     }
81 }
82
83 // End DescendantsConstraint.java
84
Popular Tags