package org.radargun.utils; import java.text.DecimalFormat; /** * Computes min/max. * * @author Radim Vansa <rvansa@redhat.com> */ public class MinMax { public static class Long { long min = java.lang.Long.MAX_VALUE; long max = java.lang.Long.MIN_VALUE; public long min() { return min; } public long max() { return max; } public Long add(long value) { min = Math.min(min, value); max = Math.max(max, value); return this; } public String toString() { return toString(min, max); } public static String toString(long min, long max) { if (min > max) return "none"; if (min == max) return String.valueOf(max); return min + " .. " + max; } public boolean isSet() { return min <= max; } } public static class Int { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; public int min() { return min; } public int max() { return max; } public Int add(int value) { min = Math.min(min, value); max = Math.max(max, value); return this; } public String toString() { return toString(min, max); } public static String toString(int min, int max) { if (min > max) return "none"; if (min == max) return String.valueOf(max); return min + " .. " + max; } public boolean isSet() { return min <= max; } } public static class Double { double min = java.lang.Double.POSITIVE_INFINITY; double max = java.lang.Double.NEGATIVE_INFINITY; public double min() { return min; } public double max() { return max; } public Double add(double value) { min = Math.min(min, value); max = Math.max(max, value); return this; } public String toString() { return toString(min, max); } public static String toString(double min, double max) { if (min > max) return "none"; if (min == max) return String.valueOf(max); return min + " .. " + max; } public String toString(DecimalFormat formatter) { if (min > max) return "none"; if (min == max) return formatter.format(max); return formatter.format(min) + " .. " + formatter.format(max); } public boolean isSet() { return !java.lang.Double.isInfinite(min); } } }