1 13 14 package mondrian.rolap; 15 16 import mondrian.olap.*; 17 18 29 class RolapCalculatedMember extends RolapMember { 30 private final Formula formula; 31 32 RolapCalculatedMember( 33 RolapMember parentMember, RolapLevel level, String name, 34 Formula formula) { 35 super(parentMember, level, name); 36 this.formula = formula; 37 } 38 39 public int getSolveOrder() { 41 final Number solveOrder = formula.getSolveOrder(); 42 return solveOrder == null ? 0 : solveOrder.intValue(); 43 } 44 45 public Object getPropertyValue(String propertyName, boolean matchCase) { 46 if (Util.equal(propertyName, Property.FORMULA.name, matchCase)) { 47 return formula; 48 } else if (Util.equal(propertyName, Property.CHILDREN_CARDINALITY.name, matchCase)) { 49 return 0; 52 } else { 53 return super.getPropertyValue(propertyName, matchCase); 54 } 55 } 56 57 public boolean isCalculated() { 58 return true; 59 } 60 61 public boolean isCalculatedInQuery() { 62 final String memberScope = 63 (String ) getPropertyValue(Property.MEMBER_SCOPE.name); 64 return memberScope == null || 65 memberScope.equals("QUERY"); 66 } 67 68 public Exp getExpression() { 69 return formula.getExpression(); 70 } 71 72 public Formula getFormula() { 73 return formula; 74 } 75 } 76 77 78 | Popular Tags |