KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > rolap > agg > AbstractColumnPredicate


1 /*
2 // $Id: //open/mondrian/src/main/mondrian/rolap/agg/AbstractColumnPredicate.java#2 $
3 // This software is subject to the terms of the Common Public License
4 // Agreement, available at the following URL:
5 // http://www.opensource.org/licenses/cpl.html.
6 // Copyright (C) 2004-2005 TONBELLER AG
7 // Copyright (C) 2006-2007 Julian Hyde and others
8 // All Rights Reserved.
9 // You must accept the terms of that agreement to use this software.
10 */

11 package mondrian.rolap.agg;
12
13 import mondrian.rolap.StarColumnPredicate;
14 import mondrian.rolap.RolapStar;
15 import mondrian.rolap.StarPredicate;
16
17 import java.util.List JavaDoc;
18 import java.util.Collections JavaDoc;
19
20 /**
21  * A <code>AbstractColumnPredicate</code> is an abstract implementation for
22  * {@link mondrian.rolap.StarColumnPredicate}.
23  *
24  * @version $Id: //open/mondrian/src/main/mondrian/rolap/agg/AbstractColumnPredicate.java#2 $
25  */

26 public abstract class AbstractColumnPredicate implements StarColumnPredicate {
27     private final RolapStar.Column constrainedColumn;
28
29     /**
30      * Creates an AbstractColumnPredicate.
31      *
32      * @param constrainedColumn Constrained column
33      */

34     protected AbstractColumnPredicate(RolapStar.Column constrainedColumn) {
35         this.constrainedColumn = constrainedColumn;
36     }
37
38     public RolapStar.Column getConstrainedColumn() {
39         return constrainedColumn;
40     }
41
42     public List JavaDoc<RolapStar.Column> getConstrainedColumnList() {
43         return Collections.singletonList(constrainedColumn);
44     }
45
46     public boolean evaluate(List JavaDoc<Object JavaDoc> valueList) {
47         assert valueList.size() == 1;
48         return evaluate(valueList.get(0));
49     }
50
51     public boolean equalConstraint(StarPredicate that) {
52         return false;
53     }
54
55
56     public static class Factory {
57         /**
58          * Returns a predicate which tests whether the column's
59          * value is equal to a given constant.
60          *
61          * @param column Constrained column
62          * @param value Value
63          * @return Predicate which tests whether the column's value is equal
64          * to a column constraint's value
65          */

66         public static StarColumnPredicate equal(
67             RolapStar.Column column,
68             Object JavaDoc value)
69         {
70             return new ValueColumnPredicate(column, value);
71         }
72
73         /**
74          * Returns predicate which is the OR of a list of predicates.
75          *
76          * @param list List of predicates
77          * @return Predicate which is an OR of the list of predicates
78          */

79         public static StarColumnPredicate or(
80             RolapStar.Column column,
81             List JavaDoc<StarColumnPredicate> list)
82         {
83             return new ListColumnPredicate(column, list);
84         }
85
86         /**
87          * Returns a predicate which always evaluates to TRUE or FALSE.
88          * @param b Truth value
89          * @return Predicate which always evaluates to truth value
90          */

91         public static LiteralStarPredicate bool(boolean b) {
92             return b ? LiteralStarPredicate.TRUE : LiteralStarPredicate.FALSE;
93         }
94
95         /**
96          * Returns a predicate which tests whether the column's
97          * value is equal to column predicate's value.
98          *
99          * @param predicate Column predicate
100          * @return Predicate which tests whether the column's value is equal
101          * to a column predicate's value
102          */

103         public static StarColumnPredicate equal(ValueColumnPredicate predicate) {
104             return equal(
105                 predicate.getConstrainedColumn(),
106                 predicate.getValue());
107         }
108     }
109 }
110
111 // End AbstractColumnPredicate.java
112
Popular Tags