PluginDataExtensions

object PluginDataExtensions

PluginData 相关一些扩展

Types

Link copied to clipboard
open class NotNullMap<K, V> : Map<K, V>
Link copied to clipboard
class NotNullMutableMap<K, V> : PluginDataExtensions.NotNullMap<K, V> , MutableMap<K, V>

Functions

Link copied to clipboard
@JvmName(name = "mapKeysImmutable")
fun <OldK, NewK, V> SerializerAwareValue<Map<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<Map<NewK, V>>
@JvmName(name = "mapKeysImmutableNotNull")
fun <OldK, NewK, V : Any> SerializerAwareValue<PluginDataExtensions.NotNullMap<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<PluginDataExtensions.NotNullMap<NewK, V>>

替换 Map 的 key

@JvmName(name = "mapKeys")
fun <OldK, NewK, V> SerializerAwareValue<MutableMap<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<MutableMap<NewK, V>>
@JvmName(name = "mapKeysNotNull")
fun <OldK, NewK, V : Any> SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<OldK, V>>.mapKeys(oldToNew: (OldK) -> NewK, newToOld: (NewK) -> OldK): SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<NewK, V>>

替换 MutableMap 的 key

Link copied to clipboard
@JvmName(name = "withDefaultMapImmutable")
fun <K, V> SerializerAwareValue<Map<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<Map<K, V>>
@JvmName(name = "withDefaultMapImmutableNotNull")
fun <K, V : Any> SerializerAwareValue<Map<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<PluginDataExtensions.NotNullMap<K, V>>
@JvmName(name = "withDefaultMap")
fun <K, V> SerializerAwareValue<MutableMap<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<MutableMap<K, V>>

创建一个代理对象, 当 Map.get 返回 null 时先调用 defaultValueComputer 并放入 Map, 再返回调用的返回值

@JvmName(name = "withDefaultMapNotNull")
fun <K, V : Any> SerializerAwareValue<MutableMap<K, V>>.withDefault(defaultValueComputer: (K) -> V): SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<K, V>>
Link copied to clipboard
@JvmName(name = "withEmptyDefaultListImmutable")
fun <K, E> SerializerAwareValue<MutableMap<K, List<E>>>.withEmptyDefault(): SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<K, List<E>>>

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 ArrayList, 再从 this 中取出链接自动保存的 ArrayList.

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 LinkedHashMap, 再从 this 中取出链接自动保存的 LinkedHashMap. (MutableMap.getOrPut 的替代)

@JvmName(name = "withEmptyDefaultSetImmutable")
fun <K, E> SerializerAwareValue<MutableMap<K, Set<E>>>.withEmptyDefault(): SerializerAwareValue<PluginDataExtensions.NotNullMutableMap<K, Set<E>>>

创建一个代理对象, 当 Map.get 返回 null 时先放入一个 LinkedHashSet, 再从 this 中取出链接自动保存的 LinkedHashSet.