Package mondrian.calc.impl
Class TupleValueCalc
- java.lang.Object
 - 
- mondrian.calc.impl.AbstractCalc
 - 
- mondrian.calc.impl.GenericCalc
 - 
- mondrian.calc.impl.TupleValueCalc
 
 
 
 
- 
- All Implemented Interfaces:
 BooleanCalc,Calc,DateTimeCalc,DimensionCalc,DoubleCalc,HierarchyCalc,IntegerCalc,LevelCalc,MemberCalc,StringCalc,TupleCalc,VoidCalc
public class TupleValueCalc extends GenericCalc
Expression which evaluates a tuple expression, sets the dimensional context to the result of that expression, then yields the value of the current measure in the current dimensional context.The evaluator's context is preserved.
- Since:
 - Sep 27, 2005
 - Author:
 - jhyde
 - See Also:
 ValueCalc,MemberValueCalc
 
- 
- 
Field Summary
- 
Fields inherited from class mondrian.calc.impl.AbstractCalc
exp, type 
 - 
 
- 
Constructor Summary
Constructors Constructor Description TupleValueCalc(Exp exp, TupleCalc tupleCalc, boolean nullCheck)Creates a TupleValueCalc. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandependsOn(Hierarchy hierarchy)Returns whether this expression depends upon a given hierarchy.Objectevaluate(Evaluator evaluator)Evaluates this expression.Calc[]getCalcs()Returns this expression's child expressions.Calcoptimize()Optimizes the scalar evaluation of a tuple.- 
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 
- 
Methods inherited from interface mondrian.calc.Calc
accept, getResultStyle, getType, isWrapperFor, unwrap 
 - 
 
 - 
 
- 
- 
Method Detail
- 
evaluate
public Object evaluate(Evaluator evaluator)
Description copied from interface:CalcEvaluates 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:AbstractCalcReturns this expression's child expressions.- Overrides:
 getCalcsin classAbstractCalc
 
- 
dependsOn
public boolean dependsOn(Hierarchy hierarchy)
Description copied from interface:CalcReturns 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
 
depends on all dimensions except[Measures].[Unit Sales][Measures]. - The boolean expression
 
depends on all hierarchies except [Measures] and [Time].([Measures].[Unit Sales], [Time].[1997]) > 1000 - The list expression
 
depends upon all hierarchies except [Store] and [Measures]. How so? Normally the scalar expression would depend upon all hierarchies except [Measures], but theFilter([Store].[USA].Children, [Measures].[Unit Sales] < 50)Filterfunction sets the [Store] context before evaluating the scalar expression, so it is not inherited from the surrounding context. 
- Specified by:
 dependsOnin interfaceCalc- Overrides:
 dependsOnin classAbstractCalc- Parameters:
 hierarchy- Hierarchy- Returns:
 - Whether this expression's result depends upon the current member of the hierarchy
 
 - The expression
 
 
- 
optimize
public Calc optimize()
Optimizes the scalar evaluation of a tuple. It evaluates the members of the tuple, sets the context to these members, and evaluates the scalar result in one step, without generating a tuple. This is useful when evaluating calculated members:WITH MEMBER [Measures].[Sales last quarter] AS ' ([Measures].[Unit Sales], [Time].PreviousMember) '
- Returns:
 - optimized expression
 
 
 - 
 
 -