1 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 25 public class LevelExpr extends ExpBase implements Exp { 26 private final Level level; 27 28 34 public LevelExpr(Level level) { 35 Util.assertPrecondition(level != null, "level != null"); 36 this.level = level; 37 } 38 39 44 public Level getLevel() { 45 return level; 46 } 47 48 public String 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 accept(MdxVisitor visitor) { 73 return visitor.visit(this); 74 } 75 76 } 77 78 | Popular Tags |