package jeql.std.function;
import jeql.api.error.ExecutionException;
import jeql.api.function.AggregateFunction;
import jeql.api.function.FunctionClass;
import jeql.api.row.Row;
import jeql.api.row.RowIterator;
import jeql.api.row.RowList;
import jeql.api.table.Table;
import jeql.std.aggfunction.AvgAggFunction;
import jeql.std.aggfunction.ConcatAggFunction;
import jeql.std.aggfunction.CountAggFunction;
import jeql.std.aggfunction.FirstAggFunction;
import jeql.std.aggfunction.GeomCollectAggFunction;
import jeql.std.aggfunction.GeomConnectAggFunction;
import jeql.std.aggfunction.GeomConvexHullAggFunction;
import jeql.std.aggfunction.GeomExtentAggFunction;
import jeql.std.aggfunction.GeomUnionAggFunction;
import jeql.std.aggfunction.GeomUnionMemAggFunction;
import jeql.std.aggfunction.LastAggFunction;
import jeql.std.aggfunction.MaxAggFunction;
import jeql.std.aggfunction.MinAggFunction;
import jeql.std.aggfunction.StdDevAggFunction;
import jeql.std.aggfunction.SumAggFunction;
import jeql.util.TypeUtil;
/**
* Following functions are evaluated at stmt bind time to
* produce an AggregateFunction to do aggregation
*
* @author Martin Davis
*
*/
public class AggregateFunctions
implements FunctionClass
{
public static AggregateFunction avg() { return new AvgAggFunction(); }
public static AggregateFunction concat() { return new ConcatAggFunction(); }
public static AggregateFunction count() { return new CountAggFunction(); }
public static AggregateFunction max() { return new MaxAggFunction(); }
public static AggregateFunction min() { return new MinAggFunction(); }
public static AggregateFunction sum() { return new SumAggFunction(); }
public static AggregateFunction stddev() { return new StdDevAggFunction(); }
public static AggregateFunction first() { return new FirstAggFunction(); }
public static AggregateFunction last() { return new LastAggFunction(); }
public static AggregateFunction geomExtent() { return new GeomExtentAggFunction(); }
public static AggregateFunction geomUnion() { return new GeomUnionAggFunction(); }
public static AggregateFunction geomUnionMem() { return new GeomUnionMemAggFunction(); }
public static AggregateFunction geomCollect() { return new GeomCollectAggFunction(); }
public static AggregateFunction geomConvexHull() { return new GeomConvexHullAggFunction(); }
public static AggregateFunction geomConnect()
{
return new GeomConnectAggFunction();
}
}