Minor improvements for delegated source id lists

This commit is contained in:
Jobobby04 2022-07-26 16:30:51 -04:00
parent a44f7db3c6
commit 1d593de654

View File

@ -307,7 +307,7 @@ class SourceManager(
), ),
).associateBy { it.originalSourceQualifiedClassName } ).associateBy { it.originalSourceQualifiedClassName }
val currentDelegatedSources = ListenMutableMap(mutableMapOf<Long, DelegatedSource>(), ::handleSourceLibrary) val currentDelegatedSources: MutableMap<Long, DelegatedSource> = ListenMutableMap(mutableMapOf(), ::handleSourceLibrary)
data class DelegatedSource( data class DelegatedSource(
val sourceName: String, val sourceName: String,
@ -318,19 +318,10 @@ class SourceManager(
) )
} }
class ListenMutableMap<K, V>(private val internalMap: MutableMap<K, V>, val listener: () -> Unit) : MutableMap<K, V> { private class ListenMutableMap<K, V>(
override val size: Int private val internalMap: MutableMap<K, V>,
get() = internalMap.size private val listener: () -> Unit,
override fun containsKey(key: K): Boolean = internalMap.containsKey(key) ) : MutableMap<K, V> by internalMap {
override fun containsValue(value: V): Boolean = internalMap.containsValue(value)
override fun get(key: K): V? = internalMap[key]
override fun isEmpty(): Boolean = internalMap.isEmpty()
override val entries: MutableSet<MutableMap.MutableEntry<K, V>>
get() = internalMap.entries
override val keys: MutableSet<K>
get() = internalMap.keys
override val values: MutableCollection<V>
get() = internalMap.values
override fun clear() { override fun clear() {
val clearResult = internalMap.clear() val clearResult = internalMap.clear()
listener() listener()