Skip to content

Instantly share code, notes, and snippets.

@Sythelux
Last active August 29, 2015 14:11
Show Gist options
  • Save Sythelux/64508ceb91738de5d212 to your computer and use it in GitHub Desktop.
Save Sythelux/64508ceb91738de5d212 to your computer and use it in GitHub Desktop.
ByteUnit enum. Made like TimeUnits from Sun
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