Class HierarchyCurrentMemberFunDef.FixedCalcImpl

java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.AbstractMemberCalc
mondrian.olap.fun.HierarchyCurrentMemberFunDef.FixedCalcImpl
All Implemented Interfaces:
Calc, MemberCalc
Enclosing class:
HierarchyCurrentMemberFunDef

public static class HierarchyCurrentMemberFunDef.FixedCalcImpl extends AbstractMemberCalc
Compiled implementation of the Hierarchy.CurrentMember function that uses a fixed hierarchy.
  • Constructor Details

    • FixedCalcImpl

      public FixedCalcImpl(Exp exp, Hierarchy hierarchy)
  • 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
    • collectArguments

      public void collectArguments(Map<String,Object> arguments)
      Description copied from class: AbstractCalc
      Collects any other arguments to this calc.

      The default implementation returns name, class, type, resultStyle. A subclass must call super, but may add other arguments.

      Overrides:
      collectArguments in class AbstractCalc
      Parameters:
      arguments - Collection of name/value pairs, represented as a map