mondrian.calc.impl
Class MemberArrayValueCalc

java.lang.Object
  extended by mondrian.calc.impl.AbstractCalc
      extended by mondrian.calc.impl.GenericCalc
          extended by 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.

Author:
jhyde

Field Summary
 
Fields inherited from class mondrian.calc.impl.AbstractCalc
exp, type
 
Constructor Summary
MemberArrayValueCalc(Exp exp, MemberCalc[] memberCalcs, boolean nullCheck)
          Creates a MemberArrayValueCalc.
 
Method Summary
 boolean dependsOn(Hierarchy hierarchy)
          Returns whether this expression depends upon a given hierarchy.
 Object evaluate(Evaluator evaluator)
          Evaluates this expression.
 Calc[] getCalcs()
          Returns this expression's child expressions.
 
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
 

Constructor Detail

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 - Expression
memberCalcs - Array of compiled expressions
nullCheck - Whether to check for null values due to non-joining dimensions in a virtual cube
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.

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:

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

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads