ByteSize { @JsonCreator public static ByteSize parse(final String value) { return new ByteSize(value); } private  ByteSize(final String valueAsStr); private  ByteSize(final long bytes); @JsonCreator static ByteSize parse(final String value); static ByteSize ofBytes(final long bytes); static ByteSize ofKibibytes(final long kibibytes); static ByteSize ofMebibytes(final long mebibytes); static ByteSize ofGibibytes(final long gibibytes); static ByteSize ofTebibytes(final long tebibytes); static ByteSize ofPebibytes(final long pebibytes); long getBytes(); @Override String toString(); @JsonValue String getValueAsStr(); @Override boolean equals(final Object o); @Override int hashCode(); static final ByteSize ZERO; }
@Test void parse() { doParseTest(123L, "123", "123b", "123B", "123byTes"); doParseTest(123 * KI, "123K", "123KB", "123KiB"); doParseTest(123 * KI * KI, "123M", "123MB", "123MiB"); doParseTest(123 * KI * KI * KI, "123G", "123GB", "123GiB"); doParseTest(123 * KI * KI * KI * KI, "123T", "123TB", "123TiB"); doParseTest(123 * KI * KI * KI * KI * KI, "123P", "123PB", "123PiB"); doParseTest((long) (KI + 0.1 * KI), "1.1K"); }