Package mondrian.spi

Interface UserDefinedFunction.Argument

Enclosing interface:
UserDefinedFunction

public static interface UserDefinedFunction.Argument
  • Method Details

    • getType

      Type getType()
      Returns the type of the argument.
      Returns:
      Argument type
    • evaluateScalar

      Object evaluateScalar(Evaluator evaluator)
      Evaluates the argument as a scalar expression.

      The effect is the same as evaluate(mondrian.olap.Evaluator) except if the argument evaluates to a member or tuple. This method will set the context to the member or tuple and evaluate the current measure, whereas evaluate would return the member or tuple.

      The effect is similar to creating a calculated member in an MDX query:

      WITH MEMBER [Measures].[Previous Period] AS
        ([Measures].[Unit Sales], [Time].[Time].PrevMember)
      SELECT {[Measures].[Unit Sales],
          [Measures].[Previous Period]} on 0,
        [Time].[Time].Children on 1
      FROM [Sales]

      Note how [Measures].[Previous Period] is defined as a tuple, but evaluates to a number.

      Parameters:
      evaluator - Evaluation context
      Returns:
      Scalar expression at the given member or tuple
    • evaluate

      Object evaluate(Evaluator evaluator)
      Evaluates the argument.

      If the argument is a set of members or tuples, this method may return either a List or an Iterable. It is not safe to blindly cast to List. For guaranteed type, call evaluateList(mondrian.olap.Evaluator) or evaluateIterable(mondrian.olap.Evaluator).

      Parameters:
      evaluator - Evaluation context
      Returns:
      Result of evaluating the argument
    • evaluateList

      List evaluateList(Evaluator eval)
      Evaluates the argument to a list of members or tuples.
      Parameters:
      eval - Evaluation context
      Returns:
      List of members or tuples.
    • evaluateIterable

      Iterable evaluateIterable(Evaluator eval)
      Evaluates the argument to an iterable over members or tuples.
      Parameters:
      eval - Evaluation context
      Returns:
      Iterable over members or tuples.