package dev.dinauer.metrics.service.model; import java.util.Objects; public class Metric { private int count; private double sum; private double average; private Double min; private Double max; public Metric() { this.count = 0; this.sum = 0; this.average = 0.0F; this.min = null; this.max = null; } public void add(double value) { count = count + 1; sum = sum + value; average = calculateAverage(sum, count); if (Objects.isNull(min) || value < min) { min = value; } if (Objects.isNull(max) || value > max) { max = value; } } private double calculateAverage(double sum, int count) { if (count == 0) { return 0; } return sum / count; } public int getCount() { return count; } public double getSum() { return sum; } public double getAverage() { return average; } public Double getMin() { return min; } public Double getMax() { return max; } }