35 lines
1.3 KiB
Java
35 lines
1.3 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
class JRBigDecimalCountIncrementer extends JRAbstractExtendedIncrementer {
|
|
private static JRBigDecimalCountIncrementer mainInstance = new JRBigDecimalCountIncrementer();
|
|
|
|
public static JRBigDecimalCountIncrementer getInstance() {
|
|
return mainInstance;
|
|
}
|
|
|
|
public Object increment(JRCalculable variable, Object expressionValue, AbstractValueProvider valueProvider) {
|
|
BigDecimal value = (BigDecimal)variable.getIncrementedValue();
|
|
if (value == null || variable.isInitialized())
|
|
value = JRBigDecimalIncrementerFactory.ZERO;
|
|
if (expressionValue == null)
|
|
return value;
|
|
return value.add(JRBigDecimalIncrementerFactory.ONE);
|
|
}
|
|
|
|
public Object combine(JRCalculable calculable, JRCalculable calculableValue, AbstractValueProvider valueProvider) {
|
|
BigDecimal value = (BigDecimal)calculable.getIncrementedValue();
|
|
BigDecimal combineValue = (BigDecimal)calculableValue.getValue();
|
|
if (value == null || calculable.isInitialized())
|
|
value = JRBigDecimalIncrementerFactory.ZERO;
|
|
if (combineValue == null)
|
|
return value;
|
|
return value.add(combineValue);
|
|
}
|
|
|
|
public Object initialValue() {
|
|
return JRBigDecimalIncrementerFactory.ZERO;
|
|
}
|
|
}
|