aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-02-14 17:01:24 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-02-14 17:01:24 +0000
commitb5e4fcd7ec45522535757b18d3b0c61b69bee7f0 (patch)
tree4449eda6fb9ed14d5398ce550c5dae4423b80f3d
parent4f6716ed5e01be4c47c7e5ccbddf3a783c9d7d22 (diff)
parent4d561369c226069ad530f632618496758148b17a (diff)
downloadlibcore-b5e4fcd7ec45522535757b18d3b0c61b69bee7f0.tar.gz
Merge "Unhide API from java.util.Collections" into main
-rw-r--r--api/current.txt4
-rw-r--r--luni/src/test/java/libcore/java/util/CollectionsTest.java20
-rw-r--r--ojluni/annotations/flagged_api/java/util/Collections.annotated.java12
-rw-r--r--ojluni/annotations/sdk/nullability/java/util/Collections.annotated.java7
-rw-r--r--ojluni/src/main/java/java/util/Collections.java4
-rw-r--r--ojluni/src/main/java/java/util/LinkedHashMap.java4
-rw-r--r--ojluni/src/main/java/java/util/LinkedHashSet.java1
7 files changed, 43 insertions, 9 deletions
diff --git a/api/current.txt b/api/current.txt
index bb79ff89c46..29c42eebba7 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -13625,6 +13625,7 @@ package java.util {
method @NonNull public static <T extends java.lang.Object & java.lang.Comparable<? super T>> T min(@NonNull java.util.Collection<? extends T>);
method public static <T> T min(@NonNull java.util.Collection<? extends T>, @Nullable java.util.Comparator<? super T>);
method @NonNull public static <T> java.util.List<T> nCopies(int, T);
+ method @FlaggedApi("com.android.libcore.v_apis") @NonNull public static <E> java.util.SequencedSet<E> newSequencedSetFromMap(@NonNull java.util.SequencedMap<E,java.lang.Boolean>);
method @NonNull public static <E> java.util.Set<E> newSetFromMap(@NonNull java.util.Map<E,java.lang.Boolean>);
method public static <T> boolean replaceAll(@NonNull java.util.List<T>, T, T);
method public static void reverse(@NonNull java.util.List<?>);
@@ -13653,6 +13654,9 @@ package java.util {
method @NonNull public static <K, V> java.util.Map<K,V> unmodifiableMap(@NonNull java.util.Map<? extends K,? extends V>);
method @NonNull public static <K, V> java.util.NavigableMap<K,V> unmodifiableNavigableMap(@NonNull java.util.NavigableMap<K,? extends V>);
method @NonNull public static <T> java.util.NavigableSet<T> unmodifiableNavigableSet(@NonNull java.util.NavigableSet<T>);
+ method @FlaggedApi("com.android.libcore.v_apis") @NonNull public static <T> java.util.SequencedCollection<T> unmodifiableSequencedCollection(@NonNull java.util.SequencedCollection<? extends T>);
+ method @FlaggedApi("com.android.libcore.v_apis") @NonNull public static <K, V> java.util.SequencedMap<K,V> unmodifiableSequencedMap(@NonNull java.util.SequencedMap<? extends K,? extends V>);
+ method @FlaggedApi("com.android.libcore.v_apis") @NonNull public static <T> java.util.SequencedSet<T> unmodifiableSequencedSet(@NonNull java.util.SequencedSet<? extends T>);
method @NonNull public static <T> java.util.Set<T> unmodifiableSet(@NonNull java.util.Set<? extends T>);
method @NonNull public static <K, V> java.util.SortedMap<K,V> unmodifiableSortedMap(@NonNull java.util.SortedMap<K,? extends V>);
method @NonNull public static <T> java.util.SortedSet<T> unmodifiableSortedSet(@NonNull java.util.SortedSet<T>);
diff --git a/luni/src/test/java/libcore/java/util/CollectionsTest.java b/luni/src/test/java/libcore/java/util/CollectionsTest.java
index c92bcd401f0..0463da18ae0 100644
--- a/luni/src/test/java/libcore/java/util/CollectionsTest.java
+++ b/luni/src/test/java/libcore/java/util/CollectionsTest.java
@@ -38,6 +38,8 @@ import java.util.NavigableSet;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Queue;
+import java.util.SequencedMap;
+import java.util.SequencedSet;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
@@ -1654,4 +1656,22 @@ public final class CollectionsTest extends TestCaseWithRules {
}
return result;
}
+
+ public void testNewSequencedSetFromMap() {
+ SequencedMap<String, Boolean> map = LinkedHashMap.newLinkedHashMap(5);
+ SequencedSet<String> set = Collections.newSequencedSetFromMap(map);
+ set.add("a");
+ assertEquals("a", set.getFirst());
+ assertEquals(1, map.size());
+ set.add("b");
+ assertEquals("b", set.getLast());
+ assertEquals(2, map.size());
+
+ LinkedHashMap<String, Boolean> map2 = LinkedHashMap.newLinkedHashMap(5);
+ map2.put("a", true);
+ try {
+ Collections.newSequencedSetFromMap(map2);
+ fail("Expect IllegalArgumentException");
+ } catch (IllegalArgumentException e) {}
+ }
}
diff --git a/ojluni/annotations/flagged_api/java/util/Collections.annotated.java b/ojluni/annotations/flagged_api/java/util/Collections.annotated.java
index 60d81482f5a..e438535c2fa 100644
--- a/ojluni/annotations/flagged_api/java/util/Collections.annotated.java
+++ b/ojluni/annotations/flagged_api/java/util/Collections.annotated.java
@@ -73,8 +73,14 @@ public static int lastIndexOfSubList(java.util.List<?> source, java.util.List<?>
public static <T> java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T> c) { throw new RuntimeException("Stub!"); }
+@android.annotation.FlaggedApi(com.android.libcore.Flags.FLAG_V_APIS)
+public static <T> java.util.SequencedCollection<T> unmodifiableSequencedCollection(java.util.SequencedCollection<? extends T> c) { throw new RuntimeException("Stub!"); }
+
public static <T> java.util.Set<T> unmodifiableSet(java.util.Set<? extends T> s) { throw new RuntimeException("Stub!"); }
+@android.annotation.FlaggedApi(com.android.libcore.Flags.FLAG_V_APIS)
+public static <T> java.util.SequencedSet<T> unmodifiableSequencedSet(java.util.SequencedSet<? extends T> s) { throw new RuntimeException("Stub!"); }
+
public static <T> java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T> s) { throw new RuntimeException("Stub!"); }
public static <T> java.util.NavigableSet<T> unmodifiableNavigableSet(java.util.NavigableSet<T> s) { throw new RuntimeException("Stub!"); }
@@ -83,6 +89,9 @@ public static <T> java.util.List<T> unmodifiableList(java.util.List<? extends T>
public static <K, V> java.util.Map<K,V> unmodifiableMap(java.util.Map<? extends K,? extends V> m) { throw new RuntimeException("Stub!"); }
+@android.annotation.FlaggedApi(com.android.libcore.Flags.FLAG_V_APIS)
+public static <K, V> java.util.SequencedMap<K,V> unmodifiableSequencedMap(java.util.SequencedMap<? extends K,? extends V> m) { throw new RuntimeException("Stub!"); }
+
public static <K, V> java.util.SortedMap<K,V> unmodifiableSortedMap(java.util.SortedMap<K,? extends V> m) { throw new RuntimeException("Stub!"); }
public static <K, V> java.util.NavigableMap<K,V> unmodifiableNavigableMap(java.util.NavigableMap<K,? extends V> m) { throw new RuntimeException("Stub!"); }
@@ -166,6 +175,9 @@ public static <T> boolean addAll(java.util.Collection<? super T> c, T... element
public static <E> java.util.Set<E> newSetFromMap(java.util.Map<E,java.lang.Boolean> map) { throw new RuntimeException("Stub!"); }
+@android.annotation.FlaggedApi(com.android.libcore.Flags.FLAG_V_APIS)
+public static <E> java.util.SequencedSet<E> newSequencedSetFromMap(java.util.SequencedMap<E,java.lang.Boolean> map) { throw new RuntimeException("Stub!"); }
+
public static <T> java.util.Queue<T> asLifoQueue(java.util.Deque<T> deque) { throw new RuntimeException("Stub!"); }
public static final java.util.List EMPTY_LIST;
diff --git a/ojluni/annotations/sdk/nullability/java/util/Collections.annotated.java b/ojluni/annotations/sdk/nullability/java/util/Collections.annotated.java
index 260b69f95e1..2baeb2a468b 100644
--- a/ojluni/annotations/sdk/nullability/java/util/Collections.annotated.java
+++ b/ojluni/annotations/sdk/nullability/java/util/Collections.annotated.java
@@ -170,6 +170,13 @@ public static <T> boolean addAll(@libcore.util.NonNull java.util.Collection<? su
@libcore.util.NonNull public static <T> java.util.Queue<@libcore.util.NullFromTypeParam T> asLifoQueue(@libcore.util.NonNull java.util.Deque<@libcore.util.NullFromTypeParam T> deque) { throw new RuntimeException("Stub!"); }
+@libcore.util.NonNull public static <T> java.util.SequencedCollection<T> unmodifiableSequencedCollection(@libcore.util.NonNull java.util.SequencedCollection<? extends T> c) { throw new RuntimeException("Stub!"); }
+@libcore.util.NonNull public static <T> java.util.SequencedSet<T> unmodifiableSequencedSet(@libcore.util.NonNull java.util.SequencedSet<? extends T> s) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static <K, V> java.util.SequencedMap<K,V> unmodifiableSequencedMap(@libcore.util.NonNull java.util.SequencedMap<? extends K,? extends V> m) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static <E> java.util.SequencedSet<E> newSequencedSetFromMap(@libcore.util.NonNull java.util.SequencedMap<E,java.lang.Boolean> map) { throw new RuntimeException("Stub!"); }
+
@libcore.util.NonNull public static final java.util.List EMPTY_LIST;
static { EMPTY_LIST = null; }
diff --git a/ojluni/src/main/java/java/util/Collections.java b/ojluni/src/main/java/java/util/Collections.java
index 1b164e21de4..03b0d22d59e 100644
--- a/ojluni/src/main/java/java/util/Collections.java
+++ b/ojluni/src/main/java/java/util/Collections.java
@@ -1203,7 +1203,6 @@ public class Collections {
* returned.
* @return an unmodifiable view of the specified collection.
* @since 21
- * @hide
*/
@SuppressWarnings("unchecked")
public static <T> SequencedCollection<T> unmodifiableSequencedCollection(SequencedCollection<? extends T> c) {
@@ -1314,7 +1313,6 @@ public class Collections {
* @param s the set for which an unmodifiable view is to be returned.
* @return an unmodifiable view of the specified sequenced set.
* @since 21
- * @hide
*/
@SuppressWarnings("unchecked")
public static <T> SequencedSet<T> unmodifiableSequencedSet(SequencedSet<? extends T> s) {
@@ -2047,7 +2045,6 @@ public class Collections {
* @param m the map for which an unmodifiable view is to be returned.
* @return an unmodifiable view of the specified map.
* @since 21
- * @hide
*/
@SuppressWarnings("unchecked")
public static <K,V> SequencedMap<K,V> unmodifiableSequencedMap(SequencedMap<? extends K, ? extends V> m) {
@@ -6096,7 +6093,6 @@ public class Collections {
* @return the set backed by the map
* @throws IllegalArgumentException if {@code map} is not empty
* @since 21
- * @hide
*/
public static <E> SequencedSet<E> newSequencedSetFromMap(SequencedMap<E, Boolean> map) {
if (! map.isEmpty()) // implicit null check
diff --git a/ojluni/src/main/java/java/util/LinkedHashMap.java b/ojluni/src/main/java/java/util/LinkedHashMap.java
index c0292a96bab..9327f562a4e 100644
--- a/ojluni/src/main/java/java/util/LinkedHashMap.java
+++ b/ojluni/src/main/java/java/util/LinkedHashMap.java
@@ -666,7 +666,6 @@ public class LinkedHashMap<K,V>
*
* @return {@inheritDoc}
* @since 21
- * @hide
*/
public SequencedSet<K> sequencedKeySet() {
Set<K> ks = keySet;
@@ -818,7 +817,6 @@ public class LinkedHashMap<K,V>
*
* @return {@inheritDoc}
* @since 21
- * @hide
*/
public SequencedCollection<V> sequencedValues() {
Collection<V> vs = values;
@@ -926,7 +924,6 @@ public class LinkedHashMap<K,V>
*
* @return {@inheritDoc}
* @since 21
- * @hide
*/
public SequencedSet<Map.Entry<K, V>> sequencedEntrySet() {
Set<Map.Entry<K, V>> es = entrySet;
@@ -1130,7 +1127,6 @@ public class LinkedHashMap<K,V>
*
* @return {@inheritDoc}
* @since 21
- * @hide
*/
public SequencedMap<K, V> reversed() {
return new ReversedLinkedHashMapView<>(this);
diff --git a/ojluni/src/main/java/java/util/LinkedHashSet.java b/ojluni/src/main/java/java/util/LinkedHashSet.java
index 6280543426b..fba8b574481 100644
--- a/ojluni/src/main/java/java/util/LinkedHashSet.java
+++ b/ojluni/src/main/java/java/util/LinkedHashSet.java
@@ -302,7 +302,6 @@ public class LinkedHashSet<E>
*
* @return {@inheritDoc}
* @since 21
- * @hide
*/
public SequencedSet<E> reversed() {
class ReverseLinkedHashSetView extends AbstractSet<E> implements SequencedSet<E> {