package net.ion.craken.node.convert.rows.function; import java.util.List; import net.ion.craken.node.ReadNode; import net.ion.craken.node.convert.rows.ColumnParser; import net.ion.craken.node.convert.rows.IColumn; import net.ion.framework.util.ListUtil; import net.ion.framework.util.NumberUtil; import net.ion.framework.util.ObjectUtil; public class DivideFunction extends SingleColumn{ private List<IColumn> columns = ListUtil.newList(); private String label; public DivideFunction(ColumnParser cparser, String[] args, String label) { for(String arg : args){ columns.add(cparser.parse(arg.trim())); } this.label = label; } public Object getValue(ReadNode node) { // BigDecimal d = new BigDecimal(NumberUtil.toDouble(ObjectUtil.toString(columns.get(0).getValue(node)), 0D)); // return d.divide(divisor); double dividen = getDoubleValue(node, columns.get(0).getValue(node)); for(int i=1; i<columns.size(); i++){ double divisor = getDoubleValue(node, columns.get(i).getValue(node)); dividen = dividen / divisor; } return Double.valueOf(dividen).intValue(); } private double getDoubleValue(ReadNode node, Object value) { return NumberUtil.toDouble(ObjectUtil.toString(columns.get(0).getValue(node)), 0D); } public String getLabel() { return label; } }