}
//TODO: move somewhere else
public static Value convertKilobytes(final String kb) {
if (!Tools.isNumber(kb)) {
return new StringValue(kb, getUnitKiBytes());
}
final double k = Long.parseLong(kb);
if (k == 0) {
return new StringValue("0", getUnitKiBytes());
}
if (k / 1024 != (long) (k / 1024)) {
return new StringValue(kb, getUnitKiBytes());
}
final double m = k / 1024;
if (m / 1024 != (long) (m / 1024)) {
return new StringValue(Long.toString((long) m), getUnitMiBytes());
}
final double g = m / 1024;
if (g / 1024 != (long) (g / 1024)) {
return new StringValue(Long.toString((long) g), getUnitGiBytes());
}
final double t = g / 1024;
if (t / 1024 != (long) (t / 1024)) {
return new StringValue(Long.toString((long) t), getUnitTiBytes());
}
final double p = t / 1024;
return new StringValue(Long.toString((long) p), getUnitPiBytes());
}