mondrian.calc.impl
Class AbstractIterCalc
java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.AbstractIterCalc
- All Implemented Interfaces:
- Calc, IterCalc
- Direct Known Subclasses:
- CrossJoinFunDef.BaseMemberArrayMemberArrayIterCalc, CrossJoinFunDef.BaseMemberArrayMemberIterCalc, CrossJoinFunDef.BaseMemberMemberArrayIterCalc, CrossJoinFunDef.BaseMemberMemberIterCalc, SetFunDef.IterSetCalc
public abstract class AbstractIterCalc
- extends AbstractCalc
- implements IterCalc
Abstract implementation of the IterCalc
interface.
The derived class must
implement the IterCalc.evaluateIterable(mondrian.olap.Evaluator)
method,
and the evaluate(mondrian.olap.Evaluator)
method will call it.
- Since:
- Jan 14, 2007
- Author:
- Richard M. Emberson
-
-
Constructor Summary |
protected |
AbstractIterCalc(Exp exp,
Calc[] calcs)
Creates an abstract implementation of a compiled expression which returns
an Iterable. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractIterCalc
protected AbstractIterCalc(Exp exp,
Calc[] calcs)
- Creates an abstract implementation of a compiled expression which returns
an Iterable.
- Parameters:
exp
- Expression which was compiledcalcs
- List of child compiled expressions (for dependency
analysis)
evaluate
public Object evaluate(Evaluator evaluator)
- Description copied from interface:
Calc
- Evaluates this expression.
- Specified by:
evaluate
in interface Calc
- 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
getResultStyle
public ResultStyle getResultStyle()
- Description copied from interface:
Calc
- Returns style in which the result of evaluating this expression is
returned.
One application of this method is for the compiler to figure out
whether the compiled expression is returning a mutable list. If a mutable
list is required, the compiler can create a mutable copy.
- Specified by:
getResultStyle
in interface Calc
- Overrides:
getResultStyle
in class AbstractCalc
- See Also:
ExpCompiler.compileList(mondrian.olap.Exp, boolean)
evaluateMemberIterable
public Iterable<Member> evaluateMemberIterable(Evaluator evaluator)
- Specified by:
evaluateMemberIterable
in interface IterCalc
evaluateTupleIterable
public Iterable<Member[]> evaluateTupleIterable(Evaluator evaluator)
- Specified by:
evaluateTupleIterable
in interface IterCalc