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.
  • Constructor Details

  • Method Details

    • getName

      protected 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