package ilarkesto.base;
/**
* Data type for storing amount of bytes.
*/
public class Bytes implements Comparable<Bytes> {
private long bytes;
public Bytes(long bytes) {
this.bytes = bytes;
}
public long toLong() {
return bytes;
}
@Override
public String toString() {
return String.valueOf(bytes) + " Bytes";
}
public String toRoundedString() {
if (bytes > 10000000000l) return String.valueOf(Math.round(bytes / 1000000000f)) + " GB";
if (bytes > 10000000) return String.valueOf(Math.round(bytes / 1000000f)) + " MB";
if (bytes > 10000) return String.valueOf(Math.round(bytes / 1000f)) + " KB";
return toString();
}
public static Bytes kilo(long kilobytes) {
return new Bytes(kilobytes * 1000);
}
public static Bytes mega(long megabytes) {
return new Bytes(megabytes * 1000000);
}
public static Bytes giga(long gigabytes) {
return new Bytes(gigabytes * 1000000000);
}
@Override
public int compareTo(Bytes o) {
if (bytes == o.bytes) return 0;
return bytes > o.bytes ? 1 : -1;
}
}