Package mondrian.olap.fun
Class AbstractAggregateFunDef
- 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.AbstractAggregateFunDef
-
- All Implemented Interfaces:
FunDef
- Direct Known Subclasses:
AggregateFunDef
,NthQuartileFunDef
public class AbstractAggregateFunDef extends FunDefBase
Abstract base class for all aggregate functions (Aggregate
,Sum
,Avg
, et cetera).- Since:
- 2005/8/14
- 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
-
-
Field Summary
-
Fields inherited from class mondrian.olap.fun.FunDefBase
flags, parameterCategories, returnCategory
-
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
Constructors Constructor Description AbstractAggregateFunDef(FunDef dummyFunDef)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected TupleIterable
evaluateCurrentIterable(IterCalc iterCalc, Evaluator evaluator)
protected static TupleList
evaluateCurrentList(ListCalc listCalc, Evaluator evaluator)
Evaluates the list of members or tuples used in computing the aggregate.static TupleList
processUnrelatedDimensions(TupleList tuplesForAggregation, Evaluator evaluator)
Pushes unrelated dimensions to the top level member from the given list of tuples if the ignoreUnrelatedDimensions property is set on the base cube usage in the virtual cube.protected Exp
validateArg(Validator validator, Exp[] args, int i, int category)
Validates an argument to a call to this function.-
Methods inherited from class mondrian.olap.fun.FunDefBase
compileCall, createCall, getDescription, getName, getParameterCategories, getResultType, getReturnCategory, getSignature, getSyntax, unparse
-
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
-
-
-
-
Constructor Detail
-
AbstractAggregateFunDef
public AbstractAggregateFunDef(FunDef dummyFunDef)
-
-
Method Detail
-
validateArg
protected Exp validateArg(Validator validator, Exp[] args, int i, int category)
Description copied from class:FunDefBase
Validates an argument to a call to this function.The default implementation of this method adds an implicit conversion to the correct type. Derived classes may override.
- Overrides:
validateArg
in classFunDefBase
- Parameters:
validator
- Validatorargs
- Arguments to this functioni
- Ordinal of argumentcategory
- Expectedcategory
of argument- Returns:
- Validated argument
-
evaluateCurrentList
protected static TupleList evaluateCurrentList(ListCalc listCalc, Evaluator evaluator)
Evaluates the list of members or tuples used in computing the aggregate. If the measure for aggregation has to ignore unrelated dimensions this method will push unrelated dimension members to top level member. This behaviour is driven by the ignoreUnrelatedDimensions property on a base cube usage specified in the virtual cube.Keeps track of the number of iterations that will be required to iterate over the members or tuples needed to compute the aggregate within the current context. In doing so, also determines if the cross product of all iterations across all parent evaluation contexts will exceed the limit set in the properties file.- Parameters:
listCalc
- calculator used to evaluate the member listevaluator
- current evaluation context- Returns:
- list of evaluated members or tuples
-
evaluateCurrentIterable
protected TupleIterable evaluateCurrentIterable(IterCalc iterCalc, Evaluator evaluator)
-
processUnrelatedDimensions
public static TupleList processUnrelatedDimensions(TupleList tuplesForAggregation, Evaluator evaluator)
Pushes unrelated dimensions to the top level member from the given list of tuples if the ignoreUnrelatedDimensions property is set on the base cube usage in the virtual cube.If IgnoreMeasureForNonJoiningDimension is set to true and ignoreUnrelatedDimensions on CubeUsage is set to false then if a non joining dimension exists in the aggregation list then return an empty list else return the original list.
- Parameters:
tuplesForAggregation
- is a list of members or tuples used in computing the aggregateevaluator
- Evaluator- Returns:
- list of members or tuples
-
-