* int 0001 nnnn ... // # of bytes is 2^nnnn, big-endian bytes
*
* @see offsetIntSize
*/
private byte[] encodeInt(long value) {
NSMutableData data = new NSMutableData();
if (value > Integer.MAX_VALUE || value < 0) {
data.appendByte((byte) typeMarker(Type.kCFBinaryPlistMarkerInt, 3));
data.appendByte((byte) ((value >>> 56) & 0xff));
data.appendByte((byte) ((value >>> 48) & 0xff));
data.appendByte((byte) ((value >>> 40) & 0xff));
data.appendByte((byte) ((value >>> 32) & 0xff));
data.appendByte((byte) ((value >>> 24) & 0xff));
data.appendByte((byte) ((value >>> 16) & 0xff));
data.appendByte((byte) ((value >>> 8) & 0xff));
data.appendByte((byte) ((value >>> 0) & 0xff));
} else if (value > Short.MAX_VALUE || value < Short.MIN_VALUE) {
data.appendByte((byte) typeMarker(Type.kCFBinaryPlistMarkerInt, 2));
data.appendByte((byte) ((value >>> 24) & 0xff));
data.appendByte((byte) ((value >>> 16) & 0xff));
data.appendByte((byte) ((value >>> 8) & 0xff));
data.appendByte((byte) ((value >>> 0) & 0xff));
} else {
data.appendByte((byte) typeMarker(Type.kCFBinaryPlistMarkerInt, 1));
data.appendByte((byte) ((value >>> 8) & 0xff));
data.appendByte((byte) ((value >>> 0) & 0xff));
}
return data.bytes();
}