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 }
val currentDelegatedSources = ListenMutableMap(mutableMapOf<Long, DelegatedSource>(), ::handleSourceLibrary)
val currentDelegatedSources: MutableMap<Long, DelegatedSource> = ListenMutableMap(mutableMapOf(), ::handleSourceLibrary)
data class DelegatedSource(
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> {
override val size: Int
get() = internalMap.size
override fun containsKey(key: K): Boolean = internalMap.containsKey(key)
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
private class ListenMutableMap<K, V>(
private val internalMap: MutableMap<K, V>,
private val listener: () -> Unit,
) : MutableMap<K, V> by internalMap {
override fun clear() {
val clearResult = internalMap.clear()
listener()