AbstractPluginData
PluginData 的默认实现. 支持使用 by value()
等委托方法创建 Value 并跟踪其改动.
实现注意
此类型处于实验性阶段. 使用其中定义的属性和函数是安全的, 但将来可能会新增成员抽象函数.
See also
Inheritors
Types
Functions
Link copied to clipboard
Link copied to clipboard
fun <T> AbstractPluginData.findBackingFieldValueNode(property: KProperty<T>): AbstractPluginData.ValueNode<out T>?
Link copied to clipboard
当这个 PluginData 被放入一个 PluginDataStorage 时调用
Link copied to clipboard
当所属于这个 PluginData 的 Value 的 值 被修改时被调用.
Link copied to clipboard
operator fun <T : SerializerAwareValue<*>> T.provideDelegate(thisRef: Any?, property: KProperty<*>): T
使用 by value()
时自动调用此方法, 添加对 Value 的值修改的跟踪, 并创建 ValueNode 加入 valueNodes
Link copied to clipboard
open fun <T : SerializerAwareValue<*>> track(value: T, valueName: String, annotations: List<Annotation>): T
供手动实现时值跟踪使用 (如 Java 用户). 一般 Kotlin 用户需使用 provideDelegate
Link copied to clipboard
通过具体化类型创建一个 SerializerAwareValue.
inline fun <T> PluginData.value(default: T, crossinline apply: T.() -> Unit = {}): SerializerAwareValue<T>
通过具体化类型创建一个 SerializerAwareValue, 并设置初始值.
Link copied to clipboard
Properties
Link copied to clipboard
这个 PluginData 保存时使用的名称.
Link copied to clipboard
决定这个 PluginData 序列化时使用的格式, 默认为 YAML. 具体实现格式由 PluginDataStorage 决定.
Link copied to clipboard
序列化本对象数据时使用的 SerializersModule. 用于支持多态序列化等. 在序列化时会先使用 PluginData.serializersModule, 再对无法找到 serializer 的类型使用 MessageSerializers.serializersModule.
Link copied to clipboard
所有 valueNodes 更新和保存序列化器.
Link copied to clipboard
添加了追踪的 ValueNode 列表, 即通过 by value
初始化的属性列表.