mondrian.calc.impl
Class MemberArrayValueCalc
java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.GenericCalc
mondrian.calc.impl.MemberArrayValueCalc
- All Implemented Interfaces:
- BooleanCalc, Calc, DateTimeCalc, DimensionCalc, DoubleCalc, HierarchyCalc, IntegerCalc, LevelCalc, MemberCalc, StringCalc, TupleCalc, VoidCalc
public class MemberArrayValueCalc
- extends GenericCalc
Expression which evaluates a few member expressions,
sets the dimensional context to the result of those expressions,
then yields the value of the current measure in the current
dimensional context.
The evaluator's context is preserved.
Note that a MemberValueCalc with 0 member expressions is equivalent to a
ValueCalc; see also TupleValueCalc.
- Version:
- $Id: //open/mondrian/src/main/mondrian/calc/impl/MemberArrayValueCalc.java#1 $
- Author:
- jhyde
| Methods inherited from class mondrian.calc.impl.GenericCalc |
evaluateBoolean, evaluateDateTime, evaluateDimension, evaluateDouble, evaluateHierarchy, evaluateInteger, evaluateLevel, evaluateMember, evaluateString, evaluateTuple, evaluateVoid, numberToDouble |
| Methods inherited from class mondrian.calc.impl.AbstractCalc |
accept, anyDepends, anyDependsButFirst, butDepends, collectArguments, getArguments, getName, getResultStyle, getType, isWrapperFor, simplifyEvaluator, unwrap |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MemberArrayValueCalc
MemberArrayValueCalc(Exp exp,
MemberCalc[] memberCalcs,
boolean nullCheck)
- Creates a MemberArrayValueCalc.
Clients outside this package should use the
MemberValueCalc.create(mondrian.olap.Exp,
mondrian.calc.MemberCalc[], boolean)
factory method.
- Parameters:
exp - ExpressionmemberCalcs - Array of compiled expressionsnullCheck - Whether to check for null values due to non-joining
dimensions in a virtual cube
evaluate
public Object evaluate(Evaluator evaluator)
- Description copied from interface:
Calc
- Evaluates this expression.
- Parameters:
evaluator - Provides dimensional context in which to evaluate
this expression
- Returns:
- Result of expression evaluation
getCalcs
public Calc[] getCalcs()
- Description copied from class:
AbstractCalc
- Returns this expression's child expressions.
- Overrides:
getCalcs in class AbstractCalc
dependsOn
public boolean dependsOn(Hierarchy hierarchy)
- Description copied from interface:
Calc
- Returns whether this expression depends upon a given hierarchy.
If it does not depend on the hierarchy, then re-evaluating the
expression with a different member of this context must produce the
same answer.
Some examples:
- The expression
[Measures].[Unit Sales]
depends on all dimensions except [Measures].
- The boolean expression
([Measures].[Unit Sales],
[Time].[1997]) > 1000
depends on all hierarchies except [Measures] and [Time].
- The list expression
Filter([Store].[USA].Children,
[Measures].[Unit Sales] < 50)
depends upon all hierarchies except [Store] and [Measures].
How so? Normally the scalar expression would depend upon all hierarchies
except [Measures], but the Filter function sets the [Store]
context before evaluating the scalar expression, so it is not inherited
from the surrounding context.
- Specified by:
dependsOn in interface Calc- Overrides:
dependsOn in class AbstractCalc
- Parameters:
hierarchy - Hierarchy
- Returns:
- Whether this expression's result depends upon the current member
of the hierarchy