1 10 package mondrian.mdx; 11 12 import mondrian.olap.*; 13 import mondrian.olap.type.DimensionType; 14 import mondrian.olap.type.Type; 15 import mondrian.calc.*; 16 import mondrian.calc.impl.ConstantCalc; 17 18 25 public class DimensionExpr extends ExpBase implements Exp { 26 private final Dimension dimension; 27 28 34 public DimensionExpr(Dimension dimension) { 35 Util.assertPrecondition(dimension != null, "dimension != null"); 36 this.dimension = dimension; 37 } 38 39 44 public Dimension getDimension() { 45 return dimension; 46 } 47 48 public String toString() { 49 return dimension.getUniqueName(); 50 } 51 52 public Type getType() { 53 return DimensionType.forDimension(dimension); 54 } 55 56 public DimensionExpr clone() { 57 return new DimensionExpr(dimension); 58 } 59 60 public int getCategory() { 61 return Category.Dimension; 62 } 63 64 public Exp accept(Validator validator) { 65 return this; 66 } 67 68 public Calc accept(ExpCompiler compiler) { 69 return ConstantCalc.constantDimension(dimension); 70 } 71 72 public Object accept(MdxVisitor visitor) { 73 return visitor.visit(this); 74 } 75 76 } 77 78 | Popular Tags |