71 lines
1.2 KiB
Java
71 lines
1.2 KiB
Java
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;
|
|
}
|
|
}
|