mondrian.olap.fun
Class ParameterFunDef
java.lang.Object
org.eigenbase.xom.XMLUtil
org.eigenbase.xom.XOMUtil
mondrian.olap.Util
mondrian.olap.fun.FunUtil
mondrian.olap.fun.FunDefBase
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
-
-
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.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 |
parameterName
public final String parameterName
exp
public final Exp exp
parameterDescription
public final String parameterDescription
ParameterFunDef
ParameterFunDef(FunDef funDef,
String parameterName,
Type type,
int returnCategory,
Exp exp,
String description)
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
- Validatorargs
- 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.