Package mondrian.spi

Interface UserDefinedFunction

All Known Implementing Classes:
CurrentDateMemberExactUdf, CurrentDateMemberUdf, CurrentDateStringUdf, InUdf, InverseNormalUdf, LastNonEmptyUdf, MatchesUdf, NullValueUdf, ValUdf

public interface UserDefinedFunction
Definition of a user-defined function.

The class must have a public, zero-arguments constructor, be on Mondrian's runtime class-path, and be referenced from the schema file:

<Schema>
    ....
    <UserDefinedFunction name="MyFun" class="com.acme.MyFun">
</Schema>
Author:
jhyde
  • Method Details

    • getName

      String getName()
      Returns the name with which the user-defined function will be used from within MDX expressions.
    • getDescription

      String getDescription()
      Returns a description of the user-defined function.
    • getSyntax

      Syntax getSyntax()
      Returns the syntactic type of the user-defined function. Usually Syntax.Function.
    • getParameterTypes

      Type[] getParameterTypes()
      Returns an array of the types of the parameters of this function.
    • getReturnType

      Type getReturnType(Type[] parameterTypes)
      Returns the return-type of this function.
      Parameters:
      parameterTypes - Parameter types
      Returns:
      Return type
    • execute

      Object execute(Evaluator evaluator, UserDefinedFunction.Argument[] arguments)
      Applies this function to a set of arguments, and returns a result.
      Parameters:
      evaluator - Evaluator containts the runtime context, in particular the current member of each dimension.
      arguments - Expressions which yield the arguments of this function. Most user-defined functions will evaluate all arguments before using them. Functions such as IIf do not evaluate all arguments; this technique is called lazy evaluation.
      Returns:
      The result value.
    • getReservedWords

      String[] getReservedWords()
      Returns a list of reserved words used by this function. May return an empty array or null if this function does not require any reserved words.