All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.gradle.utils.collectionsUtils.kt Maven / Gradle / Ivy

There is a newer version: 2.1.0-Beta1
Show newest version
/*
 * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.gradle.utils

fun  T?.toSetOrEmpty(): Set =
    if (this == null) emptySet() else setOf(this)

/**
 * Merges two Map of Sets to new map
 * Example:
 * { 1: ['a', 'b'], 2: ['c'] }
 * merge
 * { 0: ['x'], 1: ['c'], 42: ['y'] }
 * =
 * { 0: ['x'], 1: ['a', 'b', 'c'], 2: ['c'], 42: ['y'] }
 */
infix fun  Map>.mergeWith(that: Map>): Map> {
    val result = mutableMapOf>()
    for ((k, setOfV) in this) {
        result[k] = setOfV + that[k].orEmpty()
    }

    val uniqueEntriesFromRight = that - this.keys
    result.putAll(uniqueEntriesFromRight)

    return result
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy