mondrian.olap.fun
Class ParameterFunDef

java.lang.Object
  extended by org.eigenbase.xom.XMLUtil
      extended by org.eigenbase.xom.XOMUtil
          extended by mondrian.olap.Util
              extended by mondrian.olap.fun.FunUtil
                  extended by mondrian.olap.fun.FunDefBase
                      extended by mondrian.olap.fun.ParameterFunDef
All Implemented Interfaces:
FunDef

public class ParameterFunDef
extends FunDefBase

A ParameterFunDef is a pseudo-function describing calls to Parameter and ParamRef functions. It exists only fleetingly, and is then converted into a Parameter. For internal use only.

Since:
Feb 14, 2003
Author:
jhyde
 

Nested Class Summary
static class ParameterFunDef.ParameterResolver
          Resolves calls to the Parameter MDX function.
static class ParameterFunDef.ParamRefResolver
          Resolves calls to the ParamRef MDX function.
 
Nested classes/interfaces inherited from class mondrian.olap.fun.FunUtil
FunUtil.SetWrapper
 
Nested classes/interfaces inherited from class mondrian.olap.Util
Util.ErrorCellValue, Util.PropertyList
 
Field Summary
 Exp exp
           
 String parameterDescription
           
 String parameterName
           
 
Fields inherited from class mondrian.olap.fun.FunDefBase
flags, parameterCategories, returnCategory, signature
 
Fields inherited from class mondrian.olap.fun.FunUtil
BooleanNull, DoubleEmpty, DoubleNull, emptyStringArray, IntegerNull, NullMember
 
Fields inherited from class mondrian.olap.Util
EmptyValue, JdbcVersion, nl, nullValue, PreJdk15, Retrowoven
 
Constructor Summary
ParameterFunDef(FunDef funDef, String parameterName, Type type, int returnCategory, Exp exp, String description)
           
 
Method Summary
 Exp createCall(Validator validator, Exp[] args)
          Creates an expression which represents a call to this function with a given set of arguments.
static String getParameterName(Exp[] args)
           
static Type getParameterType(Exp[] args)
          Returns an approximate type for a parameter, based upon the 1'th argument.
 Type getResultType(Validator validator, Exp[] args)
          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.

 
Methods inherited from class mondrian.olap.fun.FunDefBase
castType, compileCall, getDescription, getName, getParameterCategories, getReturnCategory, getSignature, getSyntax, unparse, validateArg
 
Methods inherited from class mondrian.olap.fun.FunUtil
addMembers, addMembers, addUnique, ancestor, appendTuple, avg, checkCompatible, checkFlag, checkIterListResultStyles, checkListResultStyles, compareHierarchically, compareSiblingMembers, compareValues, compareValues, compareValues, correlation, count, cousin, covariance, createDummyFunDef, decodeCategory, decodeParameterCategories, decodeReturnCategory, decodeSyntacticType, dimensionMembers, equalTuple, evaluateMembers, evaluateMembers, evaluateSet, evaluateSet, evaluateTuples, getLiteralArg, getLiteralArg, getNonEmptyLevelMembers, getNonEmptyMemberChildren, hierarchize, hierarchyMembers, isAncestorOf, isMemberType, levelMembers, makeNullMember, makeNullTuple, max, memberRange, min, newEvalException, newEvalException, percentile, periodsToDate, quartile, removeCalculatedMembers, resolveFunArgs, searchValuesDesc, sign, sortMembers, sortTuples, sortValuesDesc, stdev, sum, sumDouble, sumDouble, toPercent, tupleContainsNullMember, var
 
Methods inherited from class mondrian.olap.Util
addDatabaseTime, addLevelCalculatedMembers, areOccurencesEqual, assertPostcondition, assertPostcondition, assertPrecondition, assertPrecondition, assertTrue, assertTrue, badValue, camelToUpper, caseSensitiveCompareName, cast, cast, checkCJResultLimit, commaList, compareKey, compareName, convertStackToString, createExpr, createRandom, createSimpleValidator, createUdf, dbTimeMillis, deprecated, enumSetAllOf, enumSetNoneOf, enumSetOf, equal, equalName, equals, equals, getAnnotation, getErrorMessage, getErrorMessage, getFirstDescendantOnLevel, getMemberOrdinalInParent, hash, hash, hashArray, implode, isEmpty, isNull, isSorted, isValidProperty, lookup, lookup, lookup, lookup, lookupCompound, lookupCompound, lookupHierarchyLevel, lookupHierarchyRootMember, lookupHierarchyRootMember, lookupProperty, makeBigDecimalFromDouble, makeFqName, makeFqName, makeFqName, maskVersion, mdxEncodeString, needToImplement, newError, newError, newInternal, newInternal, nonDbTimeMillis, normalizeName, parseCommaList, parseConnectString, parseIdentifier, printMemory, printMemory, quoteForMdx, quoteMdxIdentifier, quoteMdxIdentifier, quoteMdxIdentifier, quoteMdxIdentifier, quotePattern, readFully, readURL, readURL, readURL, readURL, replace, replace, replaceProperties, singleQuoteString, singleQuoteString, toMap, toURL, unexpected, union, union, uniquify, unparse, unparse, wildcardToRegexp
 
Methods inherited from class org.eigenbase.xom.XOMUtil
addAll, addAll, addChild, addChild, addChildren, addElement, concatenate, createDefaultParser, discard, discard, discard, discard, discard, discard, discard, discard, discard, getFirstInstance, toList, toVector, wrapperToXml
 
Methods inherited from class org.eigenbase.xom.XMLUtil
getFirstTagName, printAtt, printAtt, printAtt, printAtt, printPCDATA, printPCDATA, printPCDATA, quoteAtt, quoteAtt, quoteAtt, quoteAtt, quotePCDATA, stringEncodeXML, stringHasXMLSpecials
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parameterName

public final String parameterName

exp

public final Exp exp

parameterDescription

public final String parameterDescription
Constructor Detail

ParameterFunDef

ParameterFunDef(FunDef funDef,
                String parameterName,
                Type type,
                int returnCategory,
                Exp exp,
                String description)
Method Detail

createCall

public Exp createCall(Validator validator,
                      Exp[] args)
Description copied from interface: FunDef
Creates an expression which represents a call to this function with a given set of arguments. The result is usually a ResolvedFunCall but not always.

Specified by:
createCall in interface FunDef
Overrides:
createCall 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

getParameterName

public static String getParameterName(Exp[] args)

getParameterType

public static Type getParameterType(Exp[] args)
Returns an approximate type for a parameter, based upon the 1'th argument. Does not use the default value expression, so this method can safely be used before the expression has been validated.


SourceForge.net_Logo