diff --git a/libraries/kotlin-jdbc/src/main/kotlin/kotlin/jdbc/Connections.kt b/libraries/kotlin-jdbc/src/main/kotlin/kotlin/jdbc/Connections.kt index 516e127ac17..4fb0d36851c 100644 --- a/libraries/kotlin-jdbc/src/main/kotlin/kotlin/jdbc/Connections.kt +++ b/libraries/kotlin-jdbc/src/main/kotlin/kotlin/jdbc/Connections.kt @@ -6,16 +6,6 @@ import java.math.BigDecimal import java.util.Map import java.util.Properties -private fun Map.toProperties() : Properties { - val p = Properties() - - this.keySet().forEach { - p.put(it, this[it]) - } - - return p -} - /** * create connection for the specified jdbc url with no credentials */ diff --git a/libraries/stdlib/src/kotlin/JUtilMapsJVM.kt b/libraries/stdlib/src/kotlin/JUtilMapsJVM.kt index 586bbb8f722..56ac29988ed 100644 --- a/libraries/stdlib/src/kotlin/JUtilMapsJVM.kt +++ b/libraries/stdlib/src/kotlin/JUtilMapsJVM.kt @@ -7,6 +7,7 @@ import java.util.Map import java.util.Map.Entry as JEntry import java.util.SortedMap import java.util.TreeMap +import java.util.Properties // Map APIs @@ -31,6 +32,19 @@ public inline fun java.util.Map.toSortedMap(): SortedMap = toMap public inline fun java.util.Map.toSortedMap(comparator: Comparator): SortedMap = toMap(TreeMap(comparator)) as SortedMap +/** + * Converts this [[Map]] to a [[Properties]] object + * + * @includeFunctionBody ../../test/MapTest.kt toProperties + */ +public inline fun Map.toProperties(): Properties { + val answer = Properties() + for (e in this) { + answer.put(e.key, e.value) + } + return answer +} + /** * Returns a new List containing the results of applying the given *transform* function to each [[Map.Entry]] in this [[Map]] * diff --git a/libraries/stdlib/test/MapTest.kt b/libraries/stdlib/test/MapTest.kt index 2f8917b99bc..d3c48523f93 100644 --- a/libraries/stdlib/test/MapTest.kt +++ b/libraries/stdlib/test/MapTest.kt @@ -187,4 +187,12 @@ class MapTest { } */ + test fun toProperties() { + val map = hashMap("a" to "A", "b" to "B") + val prop = map.toProperties() + assertEquals(2, prop.size) + assertEquals("A", prop.getProperty("a", "fail")) + assertEquals("B", prop.getProperty("b", "fail")) + } + }