diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-02-14 17:01:24 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-02-14 17:01:24 +0000 |
commit | b5e4fcd7ec45522535757b18d3b0c61b69bee7f0 (patch) | |
tree | 4449eda6fb9ed14d5398ce550c5dae4423b80f3d | |
parent | 4f6716ed5e01be4c47c7e5ccbddf3a783c9d7d22 (diff) | |
parent | 4d561369c226069ad530f632618496758148b17a (diff) | |
download | libcore-b5e4fcd7ec45522535757b18d3b0c61b69bee7f0.tar.gz |
Merge "Unhide API from java.util.Collections" into main
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> { |