dave08
11/04/2018, 4:14 PMfun MutableMap<String, Any>.mergeWith(mapOverride: Map<String, Any>?) {
entries.forEach { baseMap ->
val mainValue = baseMap.value
if (mainValue is String) {
val resolved = mapOverride?.get(baseMap.key) as? String
resolved?.let { this.put(baseMap.key, resolved) }
} else if (mainValue is Set<*>) {
val resolved = mapOverride?.get(baseMap.key) as? Set<String>
resolved?.let {
this.put(baseMap.key, (mainValue as Set<String>).union(resolved))
}
}
}
}