package org.neodatis.odb.impl.core.query.values;
import java.math.BigDecimal;
import org.neodatis.odb.OID;
import org.neodatis.odb.core.layers.layer2.meta.AttributeValuesMap;
import org.neodatis.odb.core.query.execution.IQueryFieldAction;
import org.neodatis.odb.core.query.values.AbstractQueryFieldAction;
import org.neodatis.tool.wrappers.NeoDatisNumber;
public class SumAction extends AbstractQueryFieldAction {
private BigDecimal sum;
public SumAction(String attributeName, String alias) {
super(attributeName,alias,false);
sum = new BigDecimal(0);
}
public void execute(OID oid, AttributeValuesMap values) {
Number n = (Number) values.get(attributeName);
sum = NeoDatisNumber.add(sum,ValuesUtil.convert(n));
}
public BigDecimal getSum() {
return sum;
}
public Object getValue() {
return sum;
}
public void end() {
// Nothing to do
}
public void start() {
// Nothing to do
}
public IQueryFieldAction copy() {
return new SumAction(attributeName,alias);
}
}
Ads help maintain this website.