KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > mdx > LevelExpr


1 /*
2 // $Id: //open/mondrian/src/main/mondrian/mdx/LevelExpr.java#5 $
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) 2006-2006 Julian Hyde
7 // All Rights Reserved.
8 // You must accept the terms of that agreement to use this software.
9 */

10 package mondrian.mdx;
11
12 import mondrian.olap.*;
13 import mondrian.olap.type.LevelType;
14 import mondrian.olap.type.Type;
15 import mondrian.calc.*;
16 import mondrian.calc.impl.ConstantCalc;
17
18 /**
19  * Usage of a {@link mondrian.olap.Level} as an MDX expression.
20  *
21  * @author jhyde
22  * @version $Id: //open/mondrian/src/main/mondrian/mdx/LevelExpr.java#5 $
23  * @since Sep 26, 2005
24  */

25 public class LevelExpr extends ExpBase implements Exp {
26     private final Level level;
27
28     /**
29      * Creates a level expression.
30      *
31      * @param level Level
32      * @pre level != null
33      */

34     public LevelExpr(Level level) {
35         Util.assertPrecondition(level != null, "level != null");
36         this.level = level;
37     }
38
39     /**
40      * Returns the level.
41      *
42      * @post return != null
43      */

44     public Level getLevel() {
45         return level;
46     }
47
48     public String JavaDoc toString() {
49         return level.getUniqueName();
50     }
51
52     public Type getType() {
53         return LevelType.forLevel(level);
54     }
55
56     public LevelExpr clone() {
57         return new LevelExpr(level);
58     }
59
60     public int getCategory() {
61         return Category.Level;
62     }
63
64     public Exp accept(Validator validator) {
65         return this;
66     }
67
68     public Calc accept(ExpCompiler compiler) {
69         return ConstantCalc.constantLevel(level);
70     }
71
72     public Object JavaDoc accept(MdxVisitor visitor) {
73         return visitor.visit(this);
74     }
75
76 }
77
78 // End LevelExpr.java
79
Popular Tags