import java.text.ParseException;
import java.util.Locale;
+/** A throughput, that is, a value per unit of time. */
public class Throughput {
- private final static NumberFormat usNumberFormat = NumberFormat
- .getInstance(Locale.US);
+ private final static NumberFormat usNumberFormat = NumberFormat.getInstance(Locale.US);
public enum Unit {
s, m, h, d
else if (unit.equals(Unit.d))
value = ((double) count * 24d * 60d * 60d * 1000d) / periodMs;
else
- throw new UtilsException("Unsupported unit " + unit);
+ throw new IllegalArgumentException("Unsupported unit " + unit);
this.unit = unit;
}
public Throughput(String def) {
int index = def.indexOf('/');
if (def.length() < 3 || index <= 0 || index != def.length() - 2)
- throw new UtilsException(def + " no a proper throughput definition"
- + " (should be <value>/<unit>, e.g. 3.54/s or 1500/h");
+ throw new IllegalArgumentException(
+ def + " no a proper throughput definition" + " (should be <value>/<unit>, e.g. 3.54/s or 1500/h");
String valueStr = def.substring(0, index);
String unitStr = def.substring(index + 1);
try {
this.value = usNumberFormat.parse(valueStr).doubleValue();
} catch (ParseException e) {
- throw new UtilsException("Cannot parse " + valueStr
- + " as a number.", e);
+ throw new IllegalArgumentException("Cannot parse " + valueStr + " as a number.", e);
}
this.unit = Unit.valueOf(unitStr);
}
else if (unit.equals(Unit.d))
return Math.round((24d * 60d * 60d * 1000d) / value);
else
- throw new UtilsException("Unsupported unit " + unit);
+ throw new IllegalArgumentException("Unsupported unit " + unit);
}
@Override