mondrian.spi
Interface UserDefinedFunction.Argument

Enclosing interface:
UserDefinedFunction

public static interface UserDefinedFunction.Argument


Method Summary
 java.lang.Object evaluate(Evaluator evaluator)
          Evaluates the argument.
 java.lang.Iterable evaluateIterable(Evaluator eval)
          Evaluates the argument to an iterable over members or tuples.
 java.util.List evaluateList(Evaluator eval)
          Evaluates the argument to a list of members or tuples.
 java.lang.Object evaluateScalar(Evaluator evaluator)
          Evaluates the argument as a scalar expression.
 Type getType()
          Returns the type of the argument.
 

Method Detail

getType

Type getType()
Returns the type of the argument.

Returns:
Argument type

evaluateScalar

java.lang.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

java.lang.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

java.util.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

java.lang.Iterable evaluateIterable(Evaluator eval)
Evaluates the argument to an iterable over members or tuples.

Parameters:
eval - Evaluation context
Returns:
Iterable over members or tuples.

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads