35 lines
1.1 KiB
Java
35 lines
1.1 KiB
Java
package com.twitter.search.common.encoding.docvalues;
|
|
|
|
public final class CSFTypeUtil {
|
|
private CSFTypeUtil() {
|
|
}
|
|
|
|
/**
|
|
* Convert a long into a byte array, stored into dest.
|
|
*/
|
|
public static void convertToBytes(byte[] dest, int valueIndex, int value) {
|
|
int offset = valueIndex * Integer.BYTES;
|
|
dest[offset] = (byte) (value >>> 24);
|
|
dest[offset + 1] = (byte) (value >>> 16);
|
|
dest[offset + 2] = (byte) (value >>> 8);
|
|
dest[offset + 3] = (byte) value;
|
|
}
|
|
|
|
/**
|
|
* Convert bytes into a long value. Inverse function of convertToBytes.
|
|
*/
|
|
public static int convertFromBytes(byte[] data, int startOffset, int valueIndex) {
|
|
// This should rarely happen, eg. when we get a corrupt ThriftIndexingEvent, we insert a new
|
|
// Document which is blank. Such a document results in a length 0 BytesRef.
|
|
if (data.length == 0) {
|
|
return 0;
|
|
}
|
|
|
|
int offset = startOffset + valueIndex * Integer.BYTES;
|
|
return ((data[offset] & 0xFF) << 24)
|
|
| ((data[offset + 1] & 0xFF) << 16)
|
|
| ((data[offset + 2] & 0xFF) << 8)
|
|
| (data[offset + 3] & 0xFF);
|
|
}
|
|
}
|