static class ResultStyleCompiler.MultiCalc extends Object implements Calc
| Modifier and Type | Field and Description |
|---|---|
(package private) Calc |
calcIter |
(package private) Calc |
calcList |
(package private) Calc |
calcMList |
(package private) int |
cnt |
(package private) static int |
counter |
(package private) int |
lineNumber |
(package private) boolean |
onlyMutableList |
| Constructor and Description |
|---|
MultiCalc(Calc calcIter,
Calc calcList,
Calc calcMList,
boolean onlyMutableList) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(CalcWriter calcWriter)
Prints this expression, by accepting a visiting
CalcWriter. |
protected boolean |
compare(Object v1,
Object v2) |
boolean |
dependsOn(Hierarchy hierarchy)
Returns whether this expression depends upon a given hierarchy.
|
Object |
evaluate(Evaluator evaluator)
Evaluates this expression.
|
protected boolean |
finalEval()
Returns whether this is a final evaluation; the one that
takes place after the while-loop in the RolapResult
constructor.
|
ResultStyle |
getResultStyle()
Returns style in which the result of evaluating this expression is
returned.
|
Type |
getType()
Returns the type of this expression.
|
boolean |
isWrapperFor(Class<?> iface) |
protected void |
print(Member[] ma) |
<T> T |
unwrap(Class<T> iface) |
static int counter
final Calc calcIter
final Calc calcList
final Calc calcMList
final boolean onlyMutableList
int lineNumber
int cnt
public boolean isWrapperFor(Class<?> iface)
isWrapperFor in interface Calcprotected boolean finalEval()
public Object evaluate(Evaluator evaluator)
Calcpublic boolean dependsOn(Hierarchy hierarchy)
CalcIf 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:[Measures].[Unit Sales]
depends on all dimensions except [Measures].
([Measures].[Unit Sales],
[Time].[1997]) > 1000
depends on all hierarchies except [Measures] and [Time].
Filter([Store].[USA].Children,
[Measures].[Unit Sales] < 50)
depends upon all hierarchies except [Store] and [Measures].
How so? Normally the scalar expression would depend upon all hierarchies
except [Measures], but the Filter function sets the [Store]
context before evaluating the scalar expression, so it is not inherited
from the surrounding context.
public Type getType()
Calcpublic void accept(CalcWriter calcWriter)
CalcCalcWriter.public ResultStyle getResultStyle()
CalcOne 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.
getResultStyle in interface CalcExpCompiler.compileList(mondrian.olap.Exp, boolean)protected void print(Member[] ma)