Class MemberValueCalc

    • Constructor Detail

      • MemberValueCalc

        public MemberValueCalc​(Exp exp,
                               MemberCalc memberCalc,
                               boolean nullCheck)
        Creates a MemberArrayValueCalc.

        Clients outside this package should use the create(mondrian.olap.Exp, mondrian.calc.MemberCalc[], boolean) factory method.

        Parameters:
        exp - Expression
        memberCalc - Compiled expression
        nullCheck - Whether to check for null values due to non-joining dimensions in a virtual cube
    • Method Detail

      • create

        public static GenericCalc create​(Exp exp,
                                         MemberCalc[] memberCalcs,
                                         boolean nullCheck)
        Parameters:
        exp - Expression
        memberCalcs - Array of members to evaluate
        nullCheck - Whether to check for null values due to non-joining dimensions in a virtual cube
        Returns:
        Compiled expression to evaluate each member expression, set evaluator context to each resulting member, then evaluate the current context
      • evaluate

        public Object evaluate​(Evaluator evaluator)
        Description copied from interface: Calc
        Evaluates this expression.
        Parameters:
        evaluator - Provides dimensional context in which to evaluate this expression
        Returns:
        Result of expression evaluation
      • 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