28 lines
1.1 KiB
Java
28 lines
1.1 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
class JRBigDecimalDistinctCountIncrementer extends JRAbstractExtendedIncrementer {
|
|
private static JRBigDecimalDistinctCountIncrementer mainInstance = new JRBigDecimalDistinctCountIncrementer();
|
|
|
|
public static JRBigDecimalDistinctCountIncrementer getInstance() {
|
|
return mainInstance;
|
|
}
|
|
|
|
public Object increment(JRCalculable variable, Object expressionValue, AbstractValueProvider valueProvider) {
|
|
DistinctCountHolder holder = (DistinctCountHolder)valueProvider.getValue(variable.getHelperVariable((byte)0));
|
|
if (variable.isInitialized())
|
|
holder.init();
|
|
return new BigDecimal(holder.getCount());
|
|
}
|
|
|
|
public Object combine(JRCalculable calculable, JRCalculable calculableValue, AbstractValueProvider valueProvider) {
|
|
DistinctCountHolder holder = (DistinctCountHolder)valueProvider.getValue(calculable.getHelperVariable((byte)0));
|
|
return new BigDecimal(holder.getCount());
|
|
}
|
|
|
|
public Object initialValue() {
|
|
return JRBigDecimalIncrementerFactory.ZERO;
|
|
}
|
|
}
|