Class TupleFunDef

java.lang.Object
org.eigenbase.xom.XMLUtil
org.eigenbase.xom.XOMUtil
All Implemented Interfaces:
FunDef

public class TupleFunDef extends FunDefBase
TupleFunDef implements the '(...)' operator which builds tuples, as in ([Time].CurrentMember, [Stores].[USA].[California]).
Since:
3 March, 2002
Author:
jhyde
  • Method Details

    • getReturnCategory

      public int getReturnCategory()
      Description copied from interface: FunDef
      Returns the Category code of the value returned by this function.
      Specified by:
      getReturnCategory in interface FunDef
      Overrides:
      getReturnCategory in class FunDefBase
    • getParameterCategories

      public int[] getParameterCategories()
      Description copied from interface: FunDef
      Returns the types of the arguments of this function. Values are the same as those returned by Exp.getCategory(). The 0th argument of methods and properties are the object they are applied to. Infix operators have two arguments, and prefix operators have one argument.
      Specified by:
      getParameterCategories in interface FunDef
      Overrides:
      getParameterCategories in class FunDefBase
    • unparse

      public void unparse(Exp[] args, PrintWriter pw)
      Description copied from interface: FunDef
      Converts a function call into MDX source code.
      Specified by:
      unparse in interface FunDef
      Overrides:
      unparse in class FunDefBase
    • getResultType

      public Type getResultType(Validator validator, Exp[] args)
      Description copied from class: FunDefBase
      Returns the type of a call to this function with a given set of arguments.

      The default implementation makes the coarse assumption that the return type is in some way related to the type of the first argument. Operators whose arguments don't follow the requirements of this implementation should override this method.

      If the function definition says it returns a literal type (numeric, string, symbol) then it's a fair guess that the function call returns the same kind of value.

      If the function definition says it returns an object type (cube, dimension, hierarchy, level, member) then we check the first argument of the function. Suppose that the function definition says that it returns a hierarchy, and the first argument of the function happens to be a member. Then it's reasonable to assume that this function returns a member.

      Overrides:
      getResultType in class FunDefBase
      Parameters:
      validator - Validator
      args - Arguments to the call to this operator
      Returns:
      result type of a call this function
    • compileCall

      public Calc compileCall(ResolvedFunCall call, ExpCompiler compiler)
      Description copied from interface: FunDef
      Converts a call to this function into executable objects.

      The result must implement the appropriate interface for the result type. For example, a function which returns an integer must return an object which implements IntegerCalc.

      Specified by:
      compileCall in interface FunDef
      Overrides:
      compileCall in class FunDefBase