Skip to content

Commit 8a04ce6

Browse files
cortinicofacebook-github-bot
authored andcommitted
Migrate MapBuilder to Kotlin (#51626)
Summary: Pull Request resolved: #51626 This just migrates the `MapBuilder` file to Kotlin. Users on Kotlin should still use the built-in collection extensions rather than using this class that will go away at some point in the future. Changelog: [Internal] [Changed] - Reviewed By: fabriziocucci Differential Revision: D75448739 fbshipit-source-id: 2bfa24ad9bd37bd571ea4551bd9a10e848841e0a
1 parent 619f68b commit 8a04ce6

3 files changed

Lines changed: 121 additions & 150 deletions

File tree

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,23 +1664,23 @@ public final class com/facebook/react/common/LifecycleState : java/lang/Enum {
16641664
public static fun values ()[Lcom/facebook/react/common/LifecycleState;
16651665
}
16661666

1667-
public class com/facebook/react/common/MapBuilder {
1668-
public fun <init> ()V
1669-
public static fun builder ()Lcom/facebook/react/common/MapBuilder$Builder;
1670-
public static fun newHashMap ()Ljava/util/HashMap;
1671-
public static fun of ()Ljava/util/Map;
1672-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1673-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1674-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1675-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1676-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1677-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1678-
public static fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1667+
public final class com/facebook/react/common/MapBuilder {
1668+
public static final field INSTANCE Lcom/facebook/react/common/MapBuilder;
1669+
public static final fun builder ()Lcom/facebook/react/common/MapBuilder$Builder;
1670+
public static final fun newHashMap ()Ljava/util/HashMap;
1671+
public static final fun of ()Ljava/util/Map;
1672+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1673+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1674+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1675+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1676+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1677+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
1678+
public static final fun of (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
16791679
}
16801680

16811681
public final class com/facebook/react/common/MapBuilder$Builder {
1682-
public fun build ()Ljava/util/Map;
1683-
public fun put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/facebook/react/common/MapBuilder$Builder;
1682+
public final fun build ()Ljava/util/Map;
1683+
public final fun put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/facebook/react/common/MapBuilder$Builder;
16841684
}
16851685

16861686
public final class com/facebook/react/common/ReactConstants {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java

Lines changed: 0 additions & 136 deletions
This file was deleted.
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
package com.facebook.react.common
9+
10+
/** Utility class for creating maps */
11+
@Deprecated("Use Kotlin's built-in collections extensions")
12+
public object MapBuilder {
13+
/** Creates an instance of `HashMap` */
14+
@JvmStatic public fun <K, V> newHashMap(): HashMap<K, V> = hashMapOf()
15+
16+
/** Returns the empty map. */
17+
@JvmStatic public fun <K, V> of(): MutableMap<K, V> = newHashMap()
18+
19+
/** Returns map containing a single entry. */
20+
@JvmStatic public fun <K, V> of(k1: K, v1: V): MutableMap<K, V> = hashMapOf(k1 to v1)
21+
22+
/** Returns map containing the given entries. */
23+
@JvmStatic
24+
public fun <K, V> of(k1: K, v1: V, k2: K, v2: V): MutableMap<K, V> = hashMapOf(k1 to v1, k2 to v2)
25+
26+
/** Returns map containing the given entries. */
27+
@JvmStatic
28+
public fun <K, V> of(k1: K, v1: V, k2: K, v2: V, k3: K, v3: V): MutableMap<K, V> =
29+
hashMapOf(k1 to v1, k2 to v2, k3 to v3)
30+
31+
/** Returns map containing the given entries. */
32+
@JvmStatic
33+
public fun <K, V> of(k1: K, v1: V, k2: K, v2: V, k3: K, v3: V, k4: K, v4: V): MutableMap<K, V> =
34+
hashMapOf(k1 to v1, k2 to v2, k3 to v3, k4 to v4)
35+
36+
/** Returns map containing the given entries. */
37+
@JvmStatic
38+
public fun <K, V> of(
39+
k1: K,
40+
v1: V,
41+
k2: K,
42+
v2: V,
43+
k3: K,
44+
v3: V,
45+
k4: K,
46+
v4: V,
47+
k5: K,
48+
v5: V
49+
): MutableMap<K, V> = hashMapOf(k1 to v1, k2 to v2, k3 to v3, k4 to v4, k5 to v5)
50+
51+
/** Returns map containing the given entries. */
52+
@JvmStatic
53+
public fun <K, V> of(
54+
k1: K,
55+
v1: V,
56+
k2: K,
57+
v2: V,
58+
k3: K,
59+
v3: V,
60+
k4: K,
61+
v4: V,
62+
k5: K,
63+
v5: V,
64+
k6: K,
65+
v6: V
66+
): MutableMap<K, V> = hashMapOf(k1 to v1, k2 to v2, k3 to v3, k4 to v4, k5 to v5, k6 to v6)
67+
68+
/** Returns map containing the given entries. */
69+
@JvmStatic
70+
public fun <K, V> of(
71+
k1: K,
72+
v1: V,
73+
k2: K,
74+
v2: V,
75+
k3: K,
76+
v3: V,
77+
k4: K,
78+
v4: V,
79+
k5: K,
80+
v5: V,
81+
k6: K,
82+
v6: V,
83+
k7: K,
84+
v7: V
85+
): MutableMap<K, V> =
86+
hashMapOf(k1 to v1, k2 to v2, k3 to v3, k4 to v4, k5 to v5, k6 to v6, k7 to v7)
87+
88+
/** Returns map containing the given entries. */
89+
@JvmStatic public fun <K, V> builder(): Builder<K, V> = Builder()
90+
91+
public class Builder<K, V> internal constructor() {
92+
private val map: MutableMap<K, V> = newHashMap()
93+
private var underConstruction = true
94+
95+
public fun put(k: K, v: V): Builder<K, V> {
96+
check(underConstruction) { "Underlying map has already been built" }
97+
map[k] = v
98+
return this
99+
}
100+
101+
public fun build(): Map<K, V> {
102+
check(underConstruction) { "Underlying map has already been built" }
103+
underConstruction = false
104+
return map
105+
}
106+
}
107+
}

0 commit comments

Comments
 (0)