package org.yamcs.yarch.streamsql;
import org.yamcs.yarch.streamsql.CompilableAggregateExpression;
import org.yamcs.yarch.streamsql.Expression;
import org.yamcs.yarch.streamsql.ParseException;
import org.yamcs.yarch.streamsql.StreamSqlException;
public class SumExpression extends CompilableAggregateExpression {
public SumExpression(Expression[] args, boolean star) throws ParseException {
super(args,star);
}
@Override
protected void doBind() throws StreamSqlException {
type=children[0].type;// TODO Auto-generated method stub
}
@Override
protected void aggregateFillCode_Declarations(StringBuilder code) {
code.append("\t"+getType().primitiveJavaType()+" sum;\n");
}
@Override
protected void aggregateFillCode_clear(StringBuilder code) {
code.append("\t\tsum=0;\n");
}
@Override
protected void aggregateFillCode_getValue(StringBuilder code) {
code.append("\t\treturn sum;\n");
}
@Override
protected void aggregateFillCode_newData(StringBuilder code) throws StreamSqlException {
fillCode_AllInputDefVars(code);
//code.append("\t\tsum+=col"+children[0].getColName()+".get"+children[0].getType().capitalized()+"()");
code.append("\t\tsum+=col"+children[0].getColName());
code.append(";\n");
}
}