Package mondrian.rolap
Class RolapAggregator
java.lang.Object
mondrian.olap.EnumeratedValues.BasicValue
mondrian.rolap.RolapAggregator
- All Implemented Interfaces:
Aggregator,EnumeratedValues.Value
- Direct Known Subclasses:
RolapAggregator.BaseAggor
Describes an aggregation operator, such as "sum" or "count".
- Since:
- Jul 9, 2003
- Author:
- jhyde
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAggregator used for aggregate tables implementing the average aggregator.static classAggregator used for aggregate tables implementing the average aggregator.static classThis is the base class for implementing aggregators over sum and average columns in an aggregate table.static classThis is an aggregator used for aggregate tables implementing the sum aggregator. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final RolapAggregatorstatic final RolapAggregatorstatic final RolapAggregatorstatic final EnumeratedValues<RolapAggregator>List of all valid aggregation operators.static final RolapAggregatorstatic final RolapAggregatorstatic final RolapAggregatorFields inherited from class mondrian.olap.EnumeratedValues.BasicValue
description, name, ordinal -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRolapAggregator(String name, int ordinal, boolean distinct) -
Method Summary
Modifier and TypeMethodDescriptionaggregate(List<Object> rawData, Dialect.Datatype datatype) Applies this aggregator over a raw list of objects for a rollup operation.getExpression(String operand) Returns the expression to apply this aggregator to an operand.If this is a distinct aggregator, returns the corresponding non-distinct aggregator, otherwise throws an error.Returns the aggregator used to roll up.booleanbooleansupportsFastAggregates(Dialect.Datatype dataType) By default, fast rollup is not supported for all classes.Methods inherited from class mondrian.olap.EnumeratedValues.BasicValue
equals, getDescription, getName, getOrdinal, toString, unexpectedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface mondrian.olap.Aggregator
aggregate
-
Field Details
-
Sum
-
Count
-
Min
-
Max
-
Avg
-
DistinctCount
-
enumeration
List of all valid aggregation operators.
-
-
Constructor Details
-
RolapAggregator
-
-
Method Details
-
isDistinct
public boolean isDistinct() -
getExpression
Returns the expression to apply this aggregator to an operand. For example,getExpression("emp.sal")returns"sum(emp.sal)". -
getNonDistinctAggregator
If this is a distinct aggregator, returns the corresponding non-distinct aggregator, otherwise throws an error. -
getRollup
Returns the aggregator used to roll up. By default, aggregators roll up themselves.- Specified by:
getRollupin interfaceAggregator- Returns:
- aggregator used to combine sub-totals into a grand-total
-
supportsFastAggregates
By default, fast rollup is not supported for all classes.- Specified by:
supportsFastAggregatesin interfaceAggregator- Parameters:
dataType- The datatype of the object we would like to rollup.- Returns:
- Whether this aggregator supports fast aggregation
-
aggregate
Description copied from interface:AggregatorApplies this aggregator over a raw list of objects for a rollup operation. This is useful when the values are already resolved and we are dealing with a rawSegmentBodyobject.Only gets called if
Aggregator.supportsFastAggregates(mondrian.spi.Dialect.Datatype)is true.This is only invoked for rollup operations.
- Specified by:
aggregatein interfaceAggregator- Parameters:
rawData- An array of values in its raw form, to be aggregated.- Returns:
- A rolled up value of the raw data. if the object type is not supported.
-