io.journalkeeper.core.serialize.SerializeExtensionPoint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of journalkeeper-core Show documentation
Show all versions of journalkeeper-core Show documentation
Journalkeeper core raft implementations.
package io.journalkeeper.core.serialize;
import io.journalkeeper.exceptions.SerializeException;
/**
* 序列化扩展点
*
* @author LiYue
* Date: 2020/2/18
*/
public interface SerializeExtensionPoint {
/**
* 反序列化对象。
*
* @param bytes 包含序列化对象的字节数组
* @param 对象类型
* @return 反序列化之后的对象
* @throws SerializeException 反序列化出错
*/
default E parse(byte[] bytes) {
return parse(bytes, 0, bytes.length);
}
/**
* 反序列化对象。
*
* @param bytes 包含序列化对象的字节数组
* @param offset 偏移量
* @param length 长度
* @param 对象类型
* @return 反序列化之后的对象
* @throws SerializeException 反序列化出错
*/
E parse(byte[] bytes, int offset, int length);
/**
* 序列化对象。
*
* @param entry 待序列化的对象
* @param 对象类型
* @return 序列化之后的字节数组
* @throws NullPointerException entry为null时抛出
* @throws SerializeException 序列化出错
*/
byte[] serialize(E entry);
}