Package mondrian.calc

Interface Calc

    • Method Detail

      • evaluate

        Object evaluate​(Evaluator evaluator)
        Evaluates this expression.
        Parameters:
        evaluator - Provides dimensional context in which to evaluate this expression
        Returns:
        Result of expression evaluation
      • dependsOn

        boolean dependsOn​(Hierarchy hierarchy)
        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.

        Parameters:
        hierarchy - Hierarchy
        Returns:
        Whether this expression's result depends upon the current member of the hierarchy
      • getType

        Type getType()
        Returns the type of this expression.
      • accept

        void accept​(CalcWriter calcWriter)
        Prints this expression, by accepting a visiting CalcWriter.
        Parameters:
        calcWriter - Writer
      • getResultStyle

        ResultStyle getResultStyle()
        Returns style in which the result of evaluating this expression is returned.

        One 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.

        See Also:
        ExpCompiler.compileList(mondrian.olap.Exp, boolean)
      • isWrapperFor

        boolean isWrapperFor​(Class<?> iface)
      • unwrap

        <T> T unwrap​(Class<T> iface)