Package mondrian.olap.fun
Class IifFunDef
- 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.IifFunDef
-
- All Implemented Interfaces:
FunDef
public class IifFunDef extends FunDefBase
Definition of theIif
MDX function.- Since:
- Jan 17, 2008
- Author:
- jhyde
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class mondrian.olap.fun.FunUtil
FunUtil.DescendingValueComparator, FunUtil.Flag, FunUtil.ObjIntPair<T>, FunUtil.OrderKey, FunUtil.Quicksorter<T>, FunUtil.SetWrapper, FunUtil.SortKeySpec, FunUtil.TupleExpMemoComparator
-
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
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static FunDefBase
BOOLEAN_INSTANCE
(package private) static IifFunDef
DIMENSION_INSTANCE
(package private) static IifFunDef
HIERARCHY_INSTANCE
(package private) static IifFunDef
LEVEL_INSTANCE
(package private) static IifFunDef
MEMBER_INSTANCE
(package private) static FunDefBase
NUMERIC_INSTANCE
(package private) static IifFunDef
SET_INSTANCE
(package private) static FunDefBase
STRING_INSTANCE
(package private) static FunDefBase
TUPLE_INSTANCE
-
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
DEBUG, EmptyValue, IBM_JVM, JdbcVersion, JVM_INSTANCE_UUID, nl, nullValue, Retrowoven
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
IifFunDef(java.lang.String name, java.lang.String description, java.lang.String flags)
Creates an IifFunDef.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Calc
compileCall(ResolvedFunCall call, ExpCompiler compiler)
Converts a call to this function into executable objects.Type
getResultType(Validator validator, Exp[] args)
Returns the type of a call to this function with a given set of arguments.-
Methods inherited from class mondrian.olap.fun.FunDefBase
castType, createCall, getDescription, getName, getParameterCategories, getReturnCategory, getSignature, getSyntax, unparse, validateArg
-
Methods inherited from class mondrian.olap.fun.FunUtil
addMembers, addMembers, addUnique, ancestor, appendTuple, avg, box, box, checkCompatible, checkIterListResultStyles, checkListResultStyles, compareHierarchically, compareSiblingMembers, compareValues, compareValues, correlation, count, cousin, covariance, createDummyFunDef, decodeCategory, decodeParameterCategories, decodeReturnCategory, decodeSyntacticType, equalTuple, evaluateMembers, evaluateSet, evaluateSet, evaluateTuples, getDimensionDefaultHierarchy, getLiteralArg, getLiteralArg, getNonEmptyLevelMembers, getNonEmptyMemberChildren, getNonEmptyMemberChildrenWithDetails, hierarchizeMemberList, hierarchizeTupleList, hierarchyMembers, isAncestorOf, levelMembers, makeNullMember, makeNullTuple, max, memberRange, min, newEvalException, newEvalException, newEvalException, parseMember, parseMemberList, parseTuple, parseTupleList, partiallySortMembers, partiallySortTuples, partialSort, percentile, periodsToDate, quartile, removeCalculatedMembers, removeCalculatedMembers, resolveFunArgs, sortMembers, sortMembers, sortTuples, sortTuples, stablePartialSort, stablePartialSort, stablePartialSortArray, stablePartialSortJulian, stablePartialSortMarc, stablePartialSortPedro, stdev, sum, sumDouble, sumDouble, toPercent, tupleContainsNullMember, tupleContainsNullMember, var, worthCaching
-
Methods inherited from class mondrian.olap.Util
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, 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, 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, replace, replace, replaceProperties, safeGet, 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
-
-
-
-
Field Detail
-
STRING_INSTANCE
static final FunDefBase STRING_INSTANCE
-
NUMERIC_INSTANCE
static final FunDefBase NUMERIC_INSTANCE
-
TUPLE_INSTANCE
static final FunDefBase TUPLE_INSTANCE
-
BOOLEAN_INSTANCE
static final FunDefBase BOOLEAN_INSTANCE
-
MEMBER_INSTANCE
static final IifFunDef MEMBER_INSTANCE
-
LEVEL_INSTANCE
static final IifFunDef LEVEL_INSTANCE
-
HIERARCHY_INSTANCE
static final IifFunDef HIERARCHY_INSTANCE
-
DIMENSION_INSTANCE
static final IifFunDef DIMENSION_INSTANCE
-
SET_INSTANCE
static final IifFunDef SET_INSTANCE
-
-
Constructor Detail
-
IifFunDef
protected IifFunDef(java.lang.String name, java.lang.String description, java.lang.String flags)
Creates an IifFunDef.- Parameters:
name
- Name of the function, for example "Members".description
- Description of the functionflags
- Encoding of the syntactic, return, and parameter types
-
-
Method Detail
-
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 classFunDefBase
- Parameters:
validator
- Validatorargs
- 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 interfaceFunDef
- Overrides:
compileCall
in classFunDefBase
-
-