Package mondrian.olap.fun
Class ResultStyleCompiler.MultiCalc
- java.lang.Object
-
- mondrian.olap.fun.ResultStyleCompiler.MultiCalc
-
- All Implemented Interfaces:
Calc
- Enclosing class:
- ResultStyleCompiler
static class ResultStyleCompiler.MultiCalc extends Object implements Calc
Calc with three child Calcs, one for ITERABLE, LIST and MUTABLE_LIST, which are evaluated during the normal evaluation process.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) CalccalcIter(package private) CalccalcList(package private) CalccalcMList(package private) intcnt(package private) static intcounter(package private) intlineNumber(package private) booleanonlyMutableList
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(CalcWriter calcWriter)Prints this expression, by accepting a visitingCalcWriter.protected booleancompare(Object v1, Object v2)booleandependsOn(Hierarchy hierarchy)Returns whether this expression depends upon a given hierarchy.Objectevaluate(Evaluator evaluator)Evaluates this expression.protected booleanfinalEval()Returns whether this is a final evaluation; the one that takes place after the while-loop in the RolapResult constructor.ResultStylegetResultStyle()Returns style in which the result of evaluating this expression is returned.TypegetType()Returns the type of this expression.booleanisWrapperFor(Class<?> iface)protected voidprint(Member[] ma)<T> Tunwrap(Class<T> iface)
-
-
-
Method Detail
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface)
- Specified by:
isWrapperForin interfaceCalc
-
finalEval
protected boolean finalEval()
Returns whether this is a final evaluation; the one that takes place after the while-loop in the RolapResult constructor.- Returns:
- true if this is a final evaluation
-
evaluate
public Object evaluate(Evaluator evaluator)
Description copied from interface:CalcEvaluates this expression.
-
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.
- The expression
-
getType
public Type getType()
Description copied from interface:CalcReturns the type of this expression.
-
accept
public void accept(CalcWriter calcWriter)
Description copied from interface:CalcPrints this expression, by accepting a visitingCalcWriter.
-
getResultStyle
public ResultStyle getResultStyle()
Description copied from interface:CalcReturns 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:
getResultStylein interfaceCalc- See Also:
ExpCompiler.compileList(mondrian.olap.Exp, boolean)
-
print
protected void print(Member[] ma)
-
-