mondrian.olap.fun
Class HierarchyCurrentMemberFunDef.CalcImpl
java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.AbstractMemberCalc
mondrian.olap.fun.HierarchyCurrentMemberFunDef.CalcImpl
- All Implemented Interfaces:
- Calc, MemberCalc
- Enclosing class:
- HierarchyCurrentMemberFunDef
public static class HierarchyCurrentMemberFunDef.CalcImpl
- extends AbstractMemberCalc
Compiled implementation of the Hierarchy.CurrentMember function that
evaluates the hierarchy expression first.
Method Summary |
boolean |
dependsOn(Hierarchy hierarchy)
Returns whether this expression depends upon a given hierarchy. |
Member |
evaluateMember(Evaluator evaluator)
Evaluates this expression to yield a member. |
protected java.lang.String |
getName()
Returns the name of this expression type, used when serializing an
expression to a string. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HierarchyCurrentMemberFunDef.CalcImpl
public HierarchyCurrentMemberFunDef.CalcImpl(Exp exp,
HierarchyCalc hierarchyCalc)
getName
protected java.lang.String getName()
- Description copied from class:
AbstractCalc
- Returns the name of this expression type, used when serializing an
expression to a string.
The default implementation tries to extract a name from a function
call, if any, then prints the last part of the class name.
- Overrides:
getName
in class AbstractCalc
evaluateMember
public Member evaluateMember(Evaluator evaluator)
- Description copied from interface:
MemberCalc
- Evaluates this expression to yield a member.
May return the null member (see
Hierarchy.getNullMember()
) but never null.
- Parameters:
evaluator
- Evaluation context
- Returns:
- a member
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:
- The expression
[Measures].[Unit Sales]
depends on all dimensions except [Measures]
.
- The boolean expression
([Measures].[Unit Sales],
[Time].[1997]) > 1000
depends on all hierarchies except [Measures] and [Time].
- The list expression
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.
- 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