package org.yamcs.yarch.streamsql; import java.util.List; import org.yamcs.yarch.streamsql.AggregateListExpression; import org.yamcs.yarch.streamsql.Expression; import org.yamcs.yarch.streamsql.FirstValExpression; import org.yamcs.yarch.streamsql.ParseException; import org.yamcs.yarch.streamsql.SumExpression; public class FunctionExpressionFactory { static Expression get(String name, List<Expression> args, boolean star) throws ParseException { Expression[] argsa=(args==null)?null:args.toArray(new Expression[0]); if("SUM".equalsIgnoreCase(name)) { return new SumExpression(argsa,star); } else if("aggregatelist".equalsIgnoreCase(name)) { return new AggregateListExpression(argsa,star); } if("firstval".equalsIgnoreCase(name)) { return new FirstValExpression(argsa,star); } throw new ParseException("unknown function '"+name+"'"); } }