package org.ovirt.engine.ui.webadmin.widget.renderer;
import com.google.gwt.text.shared.AbstractRenderer;
public class DiskSizeRenderer<T extends Number> extends AbstractRenderer<T> {
public enum DiskSizeUnit {
BYTE,
GIGABYTE;
}
private final DiskSizeUnit unit;
public DiskSizeRenderer(DiskSizeUnit unit) {
if (unit == null) {
throw new IllegalArgumentException("The unit can not be null!");
}
this.unit = unit;
}
@Override
public String render(T size) {
if (size == null) {
return "< 1 GB";
}
long sizeInGB = -1;
switch (unit) {
case BYTE:
sizeInGB = (long) (size.longValue() / Math.pow(1024, 3));
break;
case GIGABYTE:
sizeInGB = size.longValue();
break;
}
return sizeInGB >= 1 ? sizeInGB + " GB" : "< 1 GB";
}
}