class BatchWindowMax extends BatchWindowAggregate {

    public Datum aggregate(List<Datum> data) {
        if (data.isEmpty())
            return new Datum(new ArrayList<>(), new ArrayRealVector(dim));

        dim = data.get(0).metrics().getDimension();
        RealVector results = new ArrayRealVector(dim);
        results.set(Double.MIN_VALUE);

        for (Datum d : data) {
            RealVector metrics = d.metrics();
            for (int i = 0; i < dim; i ++) {
                if (timeColumn != null && i == timeColumn)
                    continue;
                results.setEntry(i, Math.max(results.getEntry(i), metrics.getEntry(i)));
            }
        }

        return new Datum(new ArrayList<>(), results);
    }

    public  BatchWindowMax();
    public  BatchWindowMax(MacroBaseConf conf);

}