package edu.uw.zookeeper.common;
import static com.google.common.base.Preconditions.checkArgument;
import com.google.common.primitives.Ints;
import com.google.common.primitives.Longs;
import com.google.common.primitives.Shorts;
public class Hex {
public static String toPaddedHexString(long value) {
return toPaddedHexString(Long.toHexString(value), Longs.BYTES*2);
}
public static String toPaddedHexString(int value) {
return toPaddedHexString(Integer.toHexString(value), Ints.BYTES*2);
}
public static String toPaddedHexString(short value) {
return toPaddedHexString(Integer.toHexString(((int) value) & 0xffff), Shorts.BYTES*2);
}
public static String toPaddedHexString(String value, int length) {
checkArgument(value.length() <= length);
StringBuilder sb = new StringBuilder(length);
for (int toPrepend=sb.capacity()-value.length(); toPrepend>0; --toPrepend) {
sb.append('0');
}
sb.append(value);
return sb.toString();
}
public static long parseLong(String string) {
return Long.parseLong(string, 16);
}
public static int parseInt(String string) {
return Integer.parseInt(string, 16);
}
public static short parseShort(String string) {
return Short.parseShort(string, 16);
}
}