@Override public MeasureType createMeasureType(String funcName, DataType dataType) { return new BasicMeasureType(funcName, dataType); }
@Override public MeasureAggregator<?> newAggregator() { if (isSum() || isCount()) { if (dataType.isDecimal()) return new BigDecimalSumAggregator(); else if (dataType.isIntegerFamily()) return new LongSumAggregator(); else if (dataType.isNumberFamily()) return new DoubleSumAggregator(); } else if (isMax()) { if (dataType.isDecimal()) return new BigDecimalMaxAggregator(); else if (dataType.isIntegerFamily()) return new LongMaxAggregator(); else if (dataType.isNumberFamily()) return new DoubleMaxAggregator(); } else if (isMin()) { if (dataType.isDecimal()) return new BigDecimalMinAggregator(); else if (dataType.isIntegerFamily()) return new LongMinAggregator(); else if (dataType.isNumberFamily()) return new DoubleMinAggregator(); } throw new IllegalArgumentException("No aggregator for func '" + funcName + "' and return type '" + dataType + "'"); }
@Override public boolean needRewrite() { return !isSum(); }
@Override public MeasureAggregator<?> newAggregator() { if (isSum() || isCount()) { if (dataType.isDecimal()) return new BigDecimalSumAggregator(); else if (dataType.isIntegerFamily()) return new LongSumAggregator(); else if (dataType.isNumberFamily()) return new DoubleSumAggregator(); } else if (isMax()) { if (dataType.isDecimal()) return new BigDecimalMaxAggregator(); else if (dataType.isIntegerFamily()) return new LongMaxAggregator(); else if (dataType.isNumberFamily()) return new DoubleMaxAggregator(); } else if (isMin()) { if (dataType.isDecimal()) return new BigDecimalMinAggregator(); else if (dataType.isIntegerFamily()) return new LongMinAggregator(); else if (dataType.isNumberFamily()) return new DoubleMinAggregator(); } throw new IllegalArgumentException("No aggregator for func '" + funcName + "' and return type '" + dataType + "'"); }
@Override public MeasureAggregator<?> newAggregator() { if (isSum() || isCount()) { if (dataType.isDecimal()) return new BigDecimalSumAggregator(); else if (dataType.isIntegerFamily()) return new LongSumAggregator(); else if (dataType.isNumberFamily()) return new DoubleSumAggregator(); } else if (isMax()) { if (dataType.isDecimal()) return new BigDecimalMaxAggregator(); else if (dataType.isIntegerFamily()) return new LongMaxAggregator(); else if (dataType.isNumberFamily()) return new DoubleMaxAggregator(); } else if (isMin()) { if (dataType.isDecimal()) return new BigDecimalMinAggregator(); else if (dataType.isIntegerFamily()) return new LongMinAggregator(); else if (dataType.isNumberFamily()) return new DoubleMinAggregator(); } throw new IllegalArgumentException("No aggregator for func '" + funcName + "' and return type '" + dataType + "'"); }
@Override public MeasureType createMeasureType(String funcName, DataType dataType) { return new BasicMeasureType(funcName, dataType); }
@Override public MeasureType createMeasureType(String funcName, DataType dataType) { return new BasicMeasureType(funcName, dataType); }