Package mondrian.olap.fun
Class MultiResolver
java.lang.Object
org.eigenbase.xom.XMLUtil
org.eigenbase.xom.XOMUtil
mondrian.olap.Util
mondrian.olap.fun.FunUtil
mondrian.olap.fun.MultiResolver
- All Implemented Interfaces:
Resolver
- Direct Known Subclasses:
ParameterFunDef.ParameterResolver
,ParameterFunDef.ParamRefResolver
,ReflectiveMultiResolver
A
MultiResolver
considers several overloadings of the same
function. If one of these overloadings matches the actual arguments, it
calls the factory method createFunDef(mondrian.olap.Exp[], mondrian.olap.FunDef)
.- Since:
- Feb 12, 2003
- Author:
- jhyde
-
Nested Class Summary
Nested classes/interfaces inherited from class mondrian.olap.fun.FunUtil
FunUtil.DescendingValueComparator
Nested classes/interfaces inherited from class mondrian.olap.Util
Util.AbstractFlatList<T>, Util.ByteMatcher, Util.ErrorCellValue, Util.Flat2List<T>, Util.Flat3List<T>, Util.Functor1<RT,
PT>, Util.GcIterator<T>, Util.MemoryInfo, Util.PropertyList, Util.SqlNullSafeComparator Nested classes/interfaces inherited from interface mondrian.olap.fun.Resolver
Resolver.Conversion
-
Field Summary
Fields inherited from class mondrian.olap.fun.FunUtil
BooleanNull, DoubleEmpty, DoubleNull, IntegerNull, NullMember
Fields inherited from class mondrian.olap.Util
DEBUG, EmptyValue, IBM_JVM, JdbcVersion, JVM_INSTANCE_UUID, nl, nullValue, Retrowoven
-
Constructor Summary
ModifierConstructorDescriptionprotected
MultiResolver
(String name, String signature, String description, String[] signatures) Creates aMultiResolver
. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract FunDef
createFunDef
(Exp[] args, FunDef dummyFunDef) Returns the description of the function or operator.Returns a representative example of the function which this Resolver can produce, for purposes of describing the function set.getName()
Returns the name of the function or operator.String[]
Returns an array of symbolic constants which can appear as arguments to this function.Returns a string describing the syntax of this function, for exampleString[]
Returns the syntax with which the function or operator was invoked.boolean
requiresExpression
(int k) Returns whether a particular argument must be a scalar expression.resolve
(Exp[] args, Validator validator, List<Resolver.Conversion> conversions) Given a particular set of arguments the function is applied to, returns the correct overloaded form of the function.Methods inherited from class mondrian.olap.fun.FunUtil
avg, box, box, checkIterListResultStyles, checkListResultStyles, compareHierarchically, compareSiblingMembers, compareValues, compareValues, count, decodeCategory, decodeParameterCategories, decodeReturnCategory, decodeSyntacticType, getDimensionDefaultHierarchy, getNonEmptyMemberChildren, getNonEmptyMemberChildrenWithDetails, isAncestorOf, makeNullTuple, max, min, newEvalException, newEvalException, newEvalException, quartile, resolveFunArgs, sum, sumDouble, sumDouble, tupleContainsNullMember, tupleContainsNullMember, worthCaching
Methods inherited from class mondrian.olap.Util
addAppender, addDatabaseTime, addLevelCalculatedMembers, append, appendArrays, areOccurencesEqual, assertPostcondition, assertPostcondition, assertPrecondition, assertPrecondition, assertTrue, assertTrue, badValue, binarySearch, bitSetBetween, camelToUpper, canCast, cancelStatement, caseSensitiveCompareName, cast, cast, castToIterable, checkCJResultLimit, close, commaList, compare, compareIntegers, compareKey, compareName, compileScript, convert, convert, convertOlap4jConnectStringToNativeMondrian, convertStackToString, copyOf, copyOf, copyOf, copyOf, copyOf, createExpr, createRandom, createRootRole, createSimpleValidator, createUdf, dbTimeMillis, deprecated, deprecated, digestMd5, digestSha256, equal, equalName, equals, equals, explain, falseFunctor, filter, flatList, flatList, flatListCopy, generateUuidString, genericArray, getAnnotation, getClosestResource, getDimensionCube, getErrorMessage, getErrorMessage, getExecutorService, getFirstDescendantOnLevel, getMatchingCause, getMemberOrdinalInParent, getMemoryInfo, getScheduledExecutorService, hash, hash, hashArray, identityFunctor, implode, intersect, isBlank, isEmpty, isNull, isSorted, isValidProperty, last, lookup, lookup, lookup, lookup, lookup, lookupCompound, lookupCompound, lookupHierarchyLevel, lookupHierarchyRootMember, lookupHierarchyRootMember, lookupProperty, makeAppender, makeBigDecimalFromDouble, makeFqName, makeFqName, makeFqName, matches, matches, mdxEncodeString, needToImplement, newElementNotFoundException, newError, newError, newIdentityHashSet, newIdentityHashSetFake, newInternal, newInternal, newTimer, nonDbTimeMillis, normalizeName, only, parseCommaList, parseConnectString, parseIdentifier, parseInterval, parseLocale, printMemory, printMemory, quoteForMdx, quoteForMdx, quoteJavaString, quoteMdxIdentifier, quoteMdxIdentifier, quoteMdxIdentifier, quoteMdxIdentifier, quotePattern, readFully, readFully, readURL, readURL, readURL, readVirtualFile, readVirtualFileAsString, removeAppender, replace, replace, replaceProperties, safeGet, setLevel, singleQuoteString, singleQuoteString, sort, sort, threadLocalRemove, toMap, toNullValuesMap, toOlap4j, toOlap4j, toOlap4j, toURL, trueFunctor, unexpected, uniquify, unparse, unparse, wildcardToRegexp
Methods inherited from class org.eigenbase.xom.XOMUtil
addChild, addChild, addChildren, addElement, concatenate, createDefaultParser, discard, discard, discard, discard, discard, discard, discard, discard, discard, getFirstInstance, wrapperToXml
Methods inherited from class org.eigenbase.xom.XMLUtil
getFirstTagName, printAtt, printAtt, printAtt, printAtt, printPCDATA, printPCDATA, printPCDATA, quoteAtt, quoteAtt, quoteAtt, quoteAtt, quotePCDATA, stringEncodeXML, stringHasXMLSpecials
-
Constructor Details
-
MultiResolver
Creates aMultiResolver
.- Parameters:
name
- Name of function or operatorsignature
- Signature of function or operatordescription
- Description of function or operatorsignatures
- Array of possible signatures, each of which is an encoding of the syntactic type, return type, and parameter types of this operator. The "Members" operator has a syntactic type "pxd" which means "an operator withproperty
syntax (p) which returns a set (x) and takes a dimension (d) as its argument". SeeFunUtil.decodeSyntacticType(String)
,FunUtil.decodeReturnCategory(String)
,FunUtil.decodeParameterCategories(String)
.
-
-
Method Details
-
getName
Description copied from interface:Resolver
Returns the name of the function or operator. -
getDescription
Description copied from interface:Resolver
Returns the description of the function or operator.- Specified by:
getDescription
in interfaceResolver
-
getSignature
Description copied from interface:Resolver
Returns a string describing the syntax of this function, for exampleStrToSet(
) - Specified by:
getSignature
in interfaceResolver
-
getSyntax
Description copied from interface:Resolver
Returns the syntax with which the function or operator was invoked. -
getReservedWords
Description copied from interface:Resolver
Returns an array of symbolic constants which can appear as arguments to this function.For example, the
DrilldownMember
may take the symbolRECURSIVE
as an argument. Most functions do not define any symbolic constants.- Specified by:
getReservedWords
in interfaceResolver
- Returns:
- An array of the names of the symbolic constants
-
getSignatures
-
getFunDef
Description copied from interface:Resolver
Returns a representative example of the function which this Resolver can produce, for purposes of describing the function set. May return null if there is no representative function, or if the Resolver has a way to describe itself in more detail. -
resolve
Description copied from interface:Resolver
Given a particular set of arguments the function is applied to, returns the correct overloaded form of the function.The method adds an item to
conversions
every time it performs an implicit type-conversion. If there are several candidate functions with the same signature, the validator will choose the one which used the fewest implicit conversions.- Specified by:
resolve
in interfaceResolver
- Parameters:
args
- Expressions which this function call is applied to.validator
- Validatorconversions
- List of implicit conversions performed (out)- Returns:
- The function definition which matches these arguments, or null if no function definition that this resolver knows about matches.
-
requiresExpression
public boolean requiresExpression(int k) Description copied from interface:Resolver
Returns whether a particular argument must be a scalar expression. Returnsfalse
if any of the variants of this resolver allows a set as itsk
th argument; true otherwise.- Specified by:
requiresExpression
in interfaceResolver
-
createFunDef
-