package org.ripple.power.speed;
public class ByteRange {
private static final String RANGE_PROPERTY_PREFIX = "bytes=";
private int initByte;
private int endByte;
public ByteRange(int initByte, int endByte) {
this.initByte = initByte;
this.endByte = endByte;
}
public ByteRange(String byteRange) {
String[] ranges = byteRange.split("-");
if (ranges.length == 2) {
try {
initByte = Integer.parseInt(ranges[0]);
endByte = Integer.parseInt(ranges[1]);
} catch (NumberFormatException e) {
throw new NumberFormatException("Incorrect range");
}
} else {
throw new NumberFormatException("Incorrect range");
}
}
public int getInitByte() {
return initByte;
}
public int getEndByte() {
return endByte;
}
public int getRangeSize() {
return (endByte - initByte);
}
public String getRangeProperty() {
if (endByte > 0) {
return RANGE_PROPERTY_PREFIX + initByte + "-" + endByte;
} else {
return RANGE_PROPERTY_PREFIX + initByte + "-";
}
}
@Override
public String toString() {
return "init: " + initByte + " end: " + endByte;
}
}