package org.vertexium.serializer.kryo.quickSerializers; public class LongQuickTypeSerializer implements QuickTypeSerializer { @Override public byte[] objectToBytes(Object value) { long time = (long) value; return objectToBytes(time, MARKER_LONG); } public byte[] objectToBytes(long time, byte marker) { byte[] results = new byte[1 + 8]; results[0] = marker; results[1] = (byte) (time >>> 56); results[2] = (byte) (time >>> 48); results[3] = (byte) (time >>> 40); results[4] = (byte) (time >>> 32); results[5] = (byte) (time >>> 24); results[6] = (byte) (time >>> 16); results[7] = (byte) (time >>> 8); results[8] = (byte) (time >>> 0); return results; } @Override public <T> T valueToObject(byte[] data) { long l = ((((long) data[1]) << 56) | (((long) data[2] & 0xff) << 48) | (((long) data[3] & 0xff) << 40) | (((long) data[4] & 0xff) << 32) | (((long) data[5] & 0xff) << 24) | (((long) data[6] & 0xff) << 16) | (((long) data[7] & 0xff) << 8) | (((long) data[8] & 0xff))); return (T) (Long) l; } }