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
Modifier and TypeClassDescriptionstatic class
Aggregator used for aggregate tables implementing the average aggregator.static class
Aggregator used for aggregate tables implementing the average aggregator.static class
This is the base class for implementing aggregators over sum and average columns in an aggregate table.static class
This is an aggregator used for aggregate tables implementing the sum aggregator. -
Field Summary
Modifier and TypeFieldDescriptionstatic final RolapAggregator
static final RolapAggregator
static final RolapAggregator
static final EnumeratedValues<RolapAggregator>
List of all valid aggregation operators.static final RolapAggregator
static final RolapAggregator
static final RolapAggregator
Fields inherited from class mondrian.olap.EnumeratedValues.BasicValue
description, name, ordinal
-
Constructor Summary
ModifierConstructorDescriptionprotected
RolapAggregator
(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.boolean
boolean
supportsFastAggregates
(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, unexpected
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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:
getRollup
in 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:
supportsFastAggregates
in 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:Aggregator
Applies 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 rawSegmentBody
object.Only gets called if
Aggregator.supportsFastAggregates(mondrian.spi.Dialect.Datatype)
is true.This is only invoked for rollup operations.
- Specified by:
aggregate
in 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.
-