package jeql.std.aggfunction; import jeql.api.function.Aggregator; import jeql.engine.function.BaseAggregateFunction; public class MinAggFunction extends BaseAggregateFunction { public MinAggFunction() { } public String getName() { return "Min"; } public Aggregator createAggregator() { return new MinAggregator(); } public static class MinAggregator implements Aggregator { private Comparable min = null; private boolean seenRow = false; public void addValue(Object obj) { seenRow = true; Comparable val = (Comparable) obj; if (min == null) min = val; else if (min.compareTo(val) > 0) min = val; } public Object getResult() { if (! seenRow) return null; return min; } } }