Class ValueFunDef

  • All Implemented Interfaces:
    FunDef

    class ValueFunDef
    extends FunDefBase
    A ValueFunDef is a pseudo-function to evaluate a member or a tuple. Similar to TupleFunDef.
    Since:
    Jun 14, 2002
    Author:
    jhyde
    • Constructor Detail

      • ValueFunDef

        ValueFunDef​(int[] argTypes)
    • Method Detail

      • 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,
                            java.io.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