Class SumAvgAggregateDefinition
- java.lang.Object
-
- org.apache.derby.impl.sql.compile.SumAvgAggregateDefinition
-
- All Implemented Interfaces:
AggregateDefinition
class SumAvgAggregateDefinition extends java.lang.Object implements AggregateDefinition
Definition for the SUM()/AVG() aggregates.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
isSum
-
Constructor Summary
Constructors Constructor Description SumAvgAggregateDefinition()
Niladic constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataTypeDescriptor
getAggregator(DataTypeDescriptor inputType, java.lang.StringBuffer aggregatorClass)
Determines the result datatype.private java.lang.String
getAggregatorClassName()
Return the aggregator class.protected java.lang.String
getOperator()
Return the arithmetic operator corresponding to this operation.(package private) void
setSumOrAvg(boolean isSum)
This is set by the parser.
-
-
-
Method Detail
-
getAggregator
public final DataTypeDescriptor getAggregator(DataTypeDescriptor inputType, java.lang.StringBuffer aggregatorClass)
Determines the result datatype. Accept NumberDataValues only.Note: In the future you should be able to do a sum user data types. One option would be to run sum on anything that implements plus(). In which case avg() would need divide().
- Specified by:
getAggregator
in interfaceAggregateDefinition
- Parameters:
inputType
- the input type, either a user type or a java.lang objectaggregatorClass
- output parameter, filled in with the class name that implements com.ibm.db2j.aggregates.Aggregator- Returns:
- the output Class (null if cannot operate on value expression of this type.
- See Also:
TypeDescriptor
-
getAggregatorClassName
private java.lang.String getAggregatorClassName()
Return the aggregator class.- Returns:
- SumAggregator.CLASS_NAME/AvgAggregator.CLASS_NAME
-
getOperator
protected java.lang.String getOperator()
Return the arithmetic operator corresponding to this operation.- Returns:
- TypeCompiler.SUM_OP /TypeCompiler.AVG_OP
-
setSumOrAvg
final void setSumOrAvg(boolean isSum)
This is set by the parser.
-
-