Last active
August 29, 2015 14:11
-
-
Save Sythelux/64508ceb91738de5d212 to your computer and use it in GitHub Desktop.
ByteUnit enum. Made like TimeUnits from Sun
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public enum ByteUnit { | |
BYTE { | |
public long toBytes(long d){return d;} | |
public long toKilos(long d){return d/(DEC1/DEC0);} | |
public long toMegas(long d){return d/(DEC2/DEC0);} | |
public long toGigas(long d){return d/(DEC3/DEC0);} | |
public long toTeras(long d){return d/(DEC4/DEC0);} | |
public long toPetas(long d){return d/(DEC5/DEC0);} | |
public long toExas(long d){return d/(DEC6/DEC0);} | |
public long toZettas(long d){return d/(DEC7/DEC0);} | |
public long toYottas(long d){return d/(DEC8/DEC0);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.B;} | |
}, | |
KILOBYTE { | |
public long toBytes(long d){return x(d, DEC1/DEC0, MAX/(DEC1/DEC0));} | |
public long toKilos(long d){return d;} | |
public long toMegas(long d){return d/(DEC2/DEC1);} | |
public long toGigas(long d){return d/(DEC3/DEC1);} | |
public long toTeras(long d){return d/(DEC4/DEC1);} | |
public long toPetas(long d){return d/(DEC5/DEC1);} | |
public long toExas(long d){return d/(DEC6/DEC1);} | |
public long toZettas(long d){return d/(DEC7/DEC1);} | |
public long toYottas(long d){return d/(DEC8/DEC1);} | |
public long convert(long d, ByteUnit u){return u.toKilos(d);} | |
public Abbrevation abbrevation() {return Abbrevation.kB;} | |
}, | |
MEGABYTE { | |
public long toBytes(long d){return x(d, DEC2/DEC0, MAX/(DEC2/DEC0));} | |
public long toKilos(long d){return x(d, DEC2/DEC1, MAX/(DEC2/DEC1));} | |
public long toMegas(long d){return d;} | |
public long toGigas(long d){return d/(DEC3/DEC2);} | |
public long toTeras(long d){return d/(DEC4/DEC2);} | |
public long toPetas(long d){return d/(DEC5/DEC2);} | |
public long toExas(long d){return d/(DEC6/DEC2);} | |
public long toZettas(long d){return d/(DEC7/DEC2);} | |
public long toYottas(long d){return d/(DEC8/DEC2);} | |
public long convert(long d, ByteUnit u){return u.toMegas(d);} | |
public Abbrevation abbrevation() {return Abbrevation.MB;} | |
}, | |
GIGABYTE { | |
public long toBytes(long d){return x(d, DEC3/DEC0, MAX/(DEC3/DEC0));} | |
public long toKilos(long d){return x(d, DEC3/DEC1, MAX/(DEC3/DEC1));} | |
public long toMegas(long d){return x(d, DEC3/DEC2, MAX/(DEC3/DEC2));} | |
public long toGigas(long d){return d;} | |
public long toTeras(long d){return d/(DEC4/DEC3);} | |
public long toPetas(long d){return d/(DEC5/DEC3);} | |
public long toExas(long d){return d/(DEC6/DEC3);} | |
public long toZettas(long d){return d/(DEC7/DEC3);} | |
public long toYottas(long d){return d/(DEC8/DEC3);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
TERABYTE { | |
public long toBytes(long d){return x(d, DEC4/DEC0, MAX/(DEC4/DEC0));} | |
public long toKilos(long d){return x(d, DEC4/DEC1, MAX/(DEC4/DEC1));} | |
public long toMegas(long d){return x(d, DEC4/DEC2, MAX/(DEC4/DEC2));} | |
public long toGigas(long d){return x(d, DEC4/DEC3, MAX/(DEC4/DEC3));} | |
public long toTeras(long d){return d;} | |
public long toPetas(long d){return d/(DEC5/DEC4);} | |
public long toExas(long d){return d/(DEC6/DEC4);} | |
public long toZettas(long d){return d/(DEC7/DEC4);} | |
public long toYottas(long d){return d/(DEC8/DEC4);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
PETABYTE { | |
public long toBytes(long d){return x(d, DEC5/DEC0, MAX/(DEC5/DEC0));} | |
public long toKilos(long d){return x(d, DEC5/DEC1, MAX/(DEC5/DEC1));} | |
public long toMegas(long d){return x(d, DEC5/DEC2, MAX/(DEC5/DEC2));} | |
public long toGigas(long d){return x(d, DEC5/DEC3, MAX/(DEC5/DEC3));} | |
public long toTeras(long d){return x(d, DEC5/DEC4, MAX/(DEC5/DEC4));} | |
public long toPetas(long d){return d;} | |
public long toExas(long d){return d/(DEC6/DEC5);} | |
public long toZettas(long d){return d/(DEC7/DEC5);} | |
public long toYottas(long d){return d/(DEC8/DEC5);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
EXABYTE { | |
public long toBytes(long d){return x(d, DEC6/DEC0, MAX/(DEC6/DEC0));} | |
public long toKilos(long d){return x(d, DEC6/DEC1, MAX/(DEC6/DEC1));} | |
public long toMegas(long d){return x(d, DEC6/DEC2, MAX/(DEC6/DEC2));} | |
public long toGigas(long d){return x(d, DEC6/DEC3, MAX/(DEC6/DEC3));} | |
public long toTeras(long d){return x(d, DEC6/DEC4, MAX/(DEC6/DEC4));} | |
public long toPetas(long d){return x(d, DEC6/DEC5, MAX/(DEC6/DEC5));} | |
public long toExas(long d){return d;} | |
public long toZettas(long d){return d/(DEC7/DEC6);} | |
public long toYottas(long d){return d/(DEC8/DEC6);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
ZETTABYTE { | |
public long toBytes(long d){return x(d, DEC7/DEC0, MAX/(DEC7/DEC0));} | |
public long toKilos(long d){return x(d, DEC7/DEC1, MAX/(DEC7/DEC1));} | |
public long toMegas(long d){return x(d, DEC7/DEC2, MAX/(DEC7/DEC2));} | |
public long toGigas(long d){return x(d, DEC7/DEC3, MAX/(DEC7/DEC3));} | |
public long toTeras(long d){return x(d, DEC7/DEC4, MAX/(DEC7/DEC4));} | |
public long toPetas(long d){return x(d, DEC7/DEC5, MAX/(DEC7/DEC5));} | |
public long toExas(long d){return x(d, DEC7/DEC6, MAX/(DEC7/DEC6));} | |
public long toZettas(long d){return d;} | |
public long toYottas(long d){return d/(DEC8/DEC7);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
YOTTABYTE{ | |
public long toBytes(long d){return x(d, DEC8/DEC0, MAX/(DEC8/DEC0));} | |
public long toKilos(long d){return x(d, DEC8/DEC1, MAX/(DEC8/DEC1));} | |
public long toMegas(long d){return x(d, DEC8/DEC2, MAX/(DEC8/DEC2));} | |
public long toGigas(long d){return x(d, DEC8/DEC3, MAX/(DEC8/DEC3));} | |
public long toTeras(long d){return x(d, DEC8/DEC4, MAX/(DEC8/DEC4));} | |
public long toPetas(long d){return x(d, DEC8/DEC5, MAX/(DEC8/DEC5));} | |
public long toExas(long d){return x(d, DEC8/DEC6, MAX/(DEC8/DEC6));} | |
public long toZettas(long d){return x(d, DEC8/DEC7, MAX/(DEC8/DEC7));} | |
public long toYottas(long d){return d;} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
KIBIBYTE { | |
public long toBytes(long d){return x(d, DUA1/DUA0, MAX/(DUA1/DUA0));} | |
public long toKilos(long d){return d;} | |
public long toMegas(long d){return d/(DUA2/DUA1);} | |
public long toGigas(long d){return d/(DUA3/DUA1);} | |
public long toTeras(long d){return d/(DUA4/DUA1);} | |
public long toPetas(long d){return d/(DUA5/DUA1);} | |
public long toExas(long d){return d/(DUA6/DUA1);} | |
public long toZettas(long d){return d/(DUA7/DUA1);} | |
public long toYottas(long d){return d/(DUA8/DUA1);} | |
public long convert(long d, ByteUnit u){return u.toKilos(d);} | |
public Abbrevation abbrevation() {return Abbrevation.kB;} | |
}, | |
MEBIBYTE { | |
public long toBytes(long d){return x(d, DUA2/DUA0, MAX/(DUA2/DUA0));} | |
public long toKilos(long d){return x(d, DUA2/DUA1, MAX/(DUA2/DUA1));} | |
public long toMegas(long d){return d;} | |
public long toGigas(long d){return d/(DUA3/DUA2);} | |
public long toTeras(long d){return d/(DUA4/DUA2);} | |
public long toPetas(long d){return d/(DUA5/DUA2);} | |
public long toExas(long d){return d/(DUA6/DUA2);} | |
public long toZettas(long d){return d/(DUA7/DUA2);} | |
public long toYottas(long d){return d/(DUA8/DUA2);} | |
public long convert(long d, ByteUnit u){return u.toMegas(d);} | |
public Abbrevation abbrevation() {return Abbrevation.MB;} | |
}, | |
GIBIBYTE { | |
public long toBytes(long d){return x(d, DUA3/DUA0, MAX/(DUA3/DUA0));} | |
public long toKilos(long d){return x(d, DUA3/DUA1, MAX/(DUA3/DUA1));} | |
public long toMegas(long d){return x(d, DUA3/DUA2, MAX/(DUA3/DUA2));} | |
public long toGigas(long d){return d;} | |
public long toTeras(long d){return d/(DUA4/DUA3);} | |
public long toPetas(long d){return d/(DUA5/DUA3);} | |
public long toExas(long d){return d/(DUA6/DUA3);} | |
public long toZettas(long d){return d/(DUA7/DUA3);} | |
public long toYottas(long d){return d/(DUA8/DUA3);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}, | |
TEBIBYTE { | |
public long toBytes(long d){return x(d, DUA4/DUA0, MAX/(DUA4/DUA0));} | |
public long toKilos(long d){return x(d, DUA4/DUA1, MAX/(DUA4/DUA1));} | |
public long toMegas(long d){return x(d, DUA4/DUA2, MAX/(DUA4/DUA2));} | |
public long toGigas(long d){return x(d, DUA4/DUA3, MAX/(DUA4/DUA3));} | |
public long toTeras(long d){return d;} | |
public long toPetas(long d){return d/(DUA5/DUA4);} | |
public long toExas(long d){return d/(DUA6/DUA4);} | |
public long toZettas(long d){return d/(DUA7/DUA4);} | |
public long toYottas(long d){return d/(DUA8/DUA4);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
} , | |
PEBIBYTE { | |
public long toBytes(long d){return x(d, DUA5/DUA0, MAX/(DUA5/DUA0));} | |
public long toKilos(long d){return x(d, DUA5/DUA1, MAX/(DUA5/DUA1));} | |
public long toMegas(long d){return x(d, DUA5/DUA2, MAX/(DUA5/DUA2));} | |
public long toGigas(long d){return x(d, DUA5/DUA3, MAX/(DUA5/DUA3));} | |
public long toTeras(long d){return x(d, DUA5/DUA4, MAX/(DUA5/DUA4));} | |
public long toPetas(long d){return d;} | |
public long toExas(long d){return d/(DUA6/DUA5);} | |
public long toZettas(long d){return d/(DUA7/DUA5);} | |
public long toYottas(long d){return d/(DUA8/DUA5);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
} , | |
EXBIBYTE { | |
public long toBytes(long d){return x(d, DUA6/DUA0, MAX/(DUA6/DUA0));} | |
public long toKilos(long d){return x(d, DUA6/DUA1, MAX/(DUA6/DUA1));} | |
public long toMegas(long d){return x(d, DUA6/DUA2, MAX/(DUA6/DUA2));} | |
public long toGigas(long d){return x(d, DUA6/DUA3, MAX/(DUA6/DUA3));} | |
public long toTeras(long d){return x(d, DUA6/DUA4, MAX/(DUA6/DUA4));} | |
public long toPetas(long d){return x(d, DUA6/DUA5, MAX/(DUA6/DUA5));} | |
public long toExas(long d){return d;} | |
public long toZettas(long d){return d/(DUA7/DUA6);} | |
public long toYottas(long d){return d/(DUA8/DUA6);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
} , | |
ZEBIBYTE { | |
public long toBytes(long d){return x(d, DUA7/DUA0, MAX/(DUA7/DUA0));} | |
public long toKilos(long d){return x(d, DUA7/DUA1, MAX/(DUA7/DUA1));} | |
public long toMegas(long d){return x(d, DUA7/DUA2, MAX/(DUA7/DUA2));} | |
public long toGigas(long d){return x(d, DUA7/DUA3, MAX/(DUA7/DUA3));} | |
public long toTeras(long d){return x(d, DUA7/DUA4, MAX/(DUA7/DUA4));} | |
public long toPetas(long d){return x(d, DUA7/DUA5, MAX/(DUA7/DUA5));} | |
public long toExas(long d){return x(d, DUA7/DUA6, MAX/(DUA7/DUA6));} | |
public long toZettas(long d){return d;} | |
public long toYottas(long d){return d/(DUA8/DUA7);} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
} , | |
YOBIBYTE{ | |
public long toBytes(long d){return x(d, DUA8/DUA0, MAX/(DUA8/DUA0));} | |
public long toKilos(long d){return x(d, DUA8/DUA1, MAX/(DUA8/DUA1));} | |
public long toMegas(long d){return x(d, DUA8/DUA2, MAX/(DUA8/DUA2));} | |
public long toGigas(long d){return x(d, DUA8/DUA3, MAX/(DUA8/DUA3));} | |
public long toTeras(long d){return x(d, DUA8/DUA4, MAX/(DUA8/DUA4));} | |
public long toPetas(long d){return x(d, DUA8/DUA5, MAX/(DUA8/DUA5));} | |
public long toExas(long d){return x(d, DUA8/DUA6, MAX/(DUA8/DUA6));} | |
public long toZettas(long d){return x(d, DUA8/DUA7, MAX/(DUA8/DUA7));} | |
public long toYottas(long d){return d;} | |
public long convert(long d, ByteUnit u){return u.toBytes(d);} | |
public Abbrevation abbrevation() {return Abbrevation.GB;} | |
}; | |
public enum Abbrevation { | |
B,kB,MB,GB,TB,PB,EB,ZB,YB,KiB,MiB,GiB,TiB,PiB,EiB,ZiB,YiB | |
} | |
static final long DUA0 = 1L; | |
static final long DUA1 = DUA0 * 1024L; | |
static final long DUA2 = DUA1 * 1024L; | |
static final long DUA3 = DUA2 * 1024L; | |
static final long DUA4 = DUA3 * 1024L; | |
static final long DUA5 = DUA4 * 1024L; | |
static final long DUA6 = DUA5 * 1024L; | |
static final long DUA7 = DUA6 * 1024L; | |
static final long DUA8 = DUA7 * 1024L; | |
static final long DEC0 = 1L; | |
static final long DEC1 = DEC0 * 1000L; | |
static final long DEC2 = DEC1 * 1000L; | |
static final long DEC3 = DEC2 * 1000L; | |
static final long DEC4 = DEC3 * 1000L; | |
static final long DEC5 = DEC4 * 1000L; | |
static final long DEC6 = DEC5 * 1000L; | |
static final long DEC7 = DEC6 * 1000L; | |
static final long DEC8 = DEC7 * 1000L; | |
static final long MAX = Long.MAX_VALUE; | |
static long x(long d, long m, long over) { | |
if (d > over) return Long.MAX_VALUE; | |
if (d < -over) return Long.MIN_VALUE; | |
return d * m; | |
} | |
public long convert(long sourceSize, ByteUnit sourceUnit) { | |
throw new AbstractMethodError(); | |
} | |
public long toBytes(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toKilos(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toMegas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toGigas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toTeras(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toPetas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toExas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toZettas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public long toYottas(long size) { | |
throw new AbstractMethodError(); | |
} | |
public Abbrevation abbrevation(){ | |
throw new AbstractMethodError(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment