All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.journalkeeper.core.serialize.SerializeExtensionPoint Maven / Gradle / Ivy

There is a newer version: 0.1.11
Show newest version
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);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy