1 package com.github.davidmoten.rx2.buffertofile; 2 3 import java.io.IOException; 4 5 public interface Serializer<T> { 6 7 /** 8 * Returns a byte array of length > 0 that is the serialization of the 9 * given value. Note that there are performance advantages if you ensure 10 * that the byte array produced has a length that is a multiple of four. 11 * 12 * @param t 13 * value to be serialized into a byte array, should not be null. 14 * @return a byte array of length > 0 15 * @throws IOException 16 * on error 17 */ 18 byte[] serialize(T t) throws IOException; 19 20 /** 21 * Returns a non-null instance of T from the byte array of length > 0. 22 * 23 * @param bytes 24 * byte array, should have length > 0 25 * @return instance of T 26 * @throws IOException 27 * on error 28 * @throws ClassNotFoundException 29 * if class T not found 30 */ 31 T deserialize(byte[] bytes) throws IOException, ClassNotFoundException; 32 }