所有类和接口

说明
生成的代码会继承该类
该实例仅支持引用类型数组, 基础类型数组走定制Codec实现。
 
 
添加了缓存功能的GenericHelper
主要用于各种缓存
集合解码器,动态构造
Q:如何解决集合和Map的编解码问题?
允许继承扩展,子类应继续保持不可变。
 
 
自定义POJO对象编解码实现接口,该接口与DsonCodecImpl协同工作,为典型的桥接模式。
当要编码的对象类型不存在直接的Codec时,该方法用于转换编解码类型。
泛型类Codec
 
 
主要用于为引入的外部库中的Bean自动生成Codec。
主要用于为引入的外部库中的Bean自动生成Codec。
定义一组要自动生成Codec的类 (表示当前类是一个配置文件)
编解码器注册表
该注解用于告知扫描器扫描codec实现时进行忽略 这使得生成的类不自动实例化,因此你可以自行实例化,以对其进行封装等。
文档转换器 将对象转换为文档或类文档结构,比如:Json/Bson/Yaml/Lua,主要用于持久化存储
 
 
表示字段在序列化为文档的过程中忽略或加入
1.读取数组内普通成员时,name传null,读取嵌套对象时使用无name参数的start方法 2.为减少API数量,我们的所有简单值读取都是带有name参数的,在已读取name的情况下,接口的name参数将被忽略。
如果用户期望强制写入null,需要先调用DsonObjectWriter.writeName(String), 再调用DsonObjectWriter.writeNull(String)
该注解的作用: 1.用于简单情况确定字段的实现类型,以实现精确解析 DsonProperty.impl()
用于标注一个类的对象可序列化为Dson文档结构
 
动态Codec注册表
为更好的支持泛型,我们根据原型类型动态创建TypeMeta PS:要做得更好的话,还可以缓存TypeInfo实例,进行常量化。
枚举编解码器 如果枚举实现了EnumLite接口,则序列化时使用自定义数字,否则使用Enum.ordinal()
单个枚举值信息
 
二进制编码下字段编号表示法 注意: 1.
 
 
该接口用于运行时补全类型的泛型参数
接口不添加Enum限制,该接口用于避免拆装箱等问题
 
 
 
 
 
 
 
字典的编码代理
通常使用该对象表示用于
特化数组支持
 
字节数组需要转Binary
 
 
 
 
 
 
 
更多基础类型Codec
 
 
 
 
 
 
 
类型的元数据 不使用Schema这样的东西,是因为Schema包含的信息太多,难以手动维护。
类型元数据配置
类型元数据注册表 注意:需要实现为线程安全的,建议实现为不可变对象(或事实不可变对象) —— 在运行时通常不会变化。
用于实现不同Converter不同的数据
类型信息的写入策略