package org.radargun.stats.representation; import org.radargun.config.DefinitionElement; import org.radargun.stats.Statistics; /** * Mean and standard deviation. * * @author Radim Vansa <rvansa@redhat.com> */ public final class MeanAndDev { public final double mean; public final double dev; public MeanAndDev(double mean, double dev) { this.mean = mean; this.dev = dev; } @DefinitionElement(name = "response-time-mean", doc = "Retrieve mean response time.") public static class Mean extends RepresentationType { @Override public double getValue(Statistics statistics, String operation, long duration) { MeanAndDev md = statistics.getRepresentation(operation, MeanAndDev.class); if (md == null) throw new IllegalArgumentException("Cannot retrieve mean from " + operation); return md.mean; } } @DefinitionElement(name = "response-time-deviation", doc = "Retrieve response time deviation.") public static class Deviation extends RepresentationType { @Override public double getValue(Statistics statistics, String operation, long duration) { MeanAndDev md = statistics.getRepresentation(operation, MeanAndDev.class); if (md == null) throw new IllegalArgumentException("Cannot retrieve mean from " + operation); return md.dev; } } public static class Series extends AbstractSeries<MeanAndDev> { static { AbstractSeries.register(Series.class, MeanAndDev.class); } public Series(long startTime, long period, MeanAndDev[] samples) { super(startTime, period, samples); } } }