mondrian.calc.impl
Class TupleValueCalc

java.lang.Object
  extended by mondrian.calc.impl.AbstractCalc
      extended by mondrian.calc.impl.GenericCalc
          extended by mondrian.calc.impl.TupleValueCalc
All Implemented Interfaces:
BooleanCalc, Calc, DateTimeCalc, DimensionCalc, DoubleCalc, HierarchyCalc, IntegerCalc, IterCalc, LevelCalc, ListCalc, MemberCalc, MemberListCalc, StringCalc, TupleCalc, TupleListCalc, 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
TupleValueCalc(Exp exp, TupleCalc tupleCalc)
           
 
Method Summary
 boolean dependsOn(Dimension dimension)
          Returns whether this expression depends upon a given dimension.
 Object evaluate(Evaluator evaluator)
          Evaluates this expression.
 Calc[] getCalcs()
          Returns this expression's child expressions.
 Calc optimize()
          Optimizes the scalar evaluation of a tuple.
 
Methods inherited from class mondrian.calc.impl.GenericCalc
evaluateBoolean, evaluateDateTime, evaluateDimension, evaluateDouble, evaluateHierarchy, evaluateInteger, evaluateIterable, evaluateLevel, evaluateList, evaluateMember, evaluateMemberIterable, evaluateMemberList, evaluateString, evaluateTuple, evaluateTupleIterable, evaluateTupleList, evaluateVoid, numberToDouble
 
Methods inherited from class mondrian.calc.impl.AbstractCalc
accept, anyDepends, anyDependsButFirst, butDepends, getArguments, getName, getResultStyle, getType, simplifyEvaluator
 
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
 

Constructor Detail

TupleValueCalc

public TupleValueCalc(Exp exp,
                      TupleCalc tupleCalc)
Method Detail

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.

Specified by:
getCalcs in class AbstractCalc

dependsOn

public boolean dependsOn(Dimension dimension)
Description copied from interface: Calc
Returns whether this expression depends upon a given dimension.

If it does not depend on the dimension, then re-evaluating the expression with a different member of this context must produce the same answer.

Some examples:

Specified by:
dependsOn in interface Calc
Overrides:
dependsOn in class AbstractCalc
Parameters:
dimension - Dimension
Returns:
Whether this expression's result depends upon the current member of the dimension

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

SourceForge.net_Logo