package org.yamcs.yarch.streamsql; import java.util.List; import org.yamcs.yarch.streamsql.AddOp; import org.yamcs.yarch.streamsql.Expression; import org.yamcs.yarch.streamsql.ParseException; import org.yamcs.yarch.streamsql.StreamSqlException; public class AdditiveExpression extends Expression { List<AddOp> ops; public AdditiveExpression(List<Expression> exprs, List<AddOp> ops) throws ParseException { super(exprs.toArray(new Expression[0])); this.ops=ops; constant=true; for (Expression expr:exprs) { if(!expr.isConstant()) { constant=false; break; } } } @Override public void doBind() throws StreamSqlException { type=children[0].getType(); } @Override public void fillCode_getValueReturn(StringBuilder code) throws StreamSqlException { code.append("("); children[0].fillCode_getValueReturn(code); for(int i=0;i<ops.size();i++) { code.append(ops.get(i).getSign()); children[i+1].fillCode_getValueReturn(code); } code.append(")"); } }