diff options
Diffstat (limited to 'guava/src/com/google/common/collect/Synchronized.java')
-rw-r--r-- | guava/src/com/google/common/collect/Synchronized.java | 64 |
1 files changed, 37 insertions, 27 deletions
diff --git a/guava/src/com/google/common/collect/Synchronized.java b/guava/src/com/google/common/collect/Synchronized.java index b1422e316..89916cd4d 100644 --- a/guava/src/com/google/common/collect/Synchronized.java +++ b/guava/src/com/google/common/collect/Synchronized.java @@ -369,8 +369,8 @@ final class Synchronized { : new SynchronizedList<E>(list, mutex); } - private static class SynchronizedList<E extends @Nullable Object> - extends SynchronizedCollection<E> implements List<E> { + static class SynchronizedList<E extends @Nullable Object> extends SynchronizedCollection<E> + implements List<E> { SynchronizedList(List<E> delegate, @CheckForNull Object mutex) { super(delegate, mutex); } @@ -480,7 +480,7 @@ final class Synchronized { private static final long serialVersionUID = 0; } - private static class SynchronizedRandomAccessList<E extends @Nullable Object> + static final class SynchronizedRandomAccessList<E extends @Nullable Object> extends SynchronizedList<E> implements RandomAccess { SynchronizedRandomAccessList(List<E> list, @CheckForNull Object mutex) { super(list, mutex); @@ -497,7 +497,7 @@ final class Synchronized { return new SynchronizedMultiset<E>(multiset, mutex); } - private static class SynchronizedMultiset<E extends @Nullable Object> + static final class SynchronizedMultiset<E extends @Nullable Object> extends SynchronizedCollection<E> implements Multiset<E> { @CheckForNull transient Set<E> elementSet; @CheckForNull transient Set<Multiset.Entry<E>> entrySet; @@ -594,7 +594,7 @@ final class Synchronized { return new SynchronizedMultimap<>(multimap, mutex); } - private static class SynchronizedMultimap<K extends @Nullable Object, V extends @Nullable Object> + static class SynchronizedMultimap<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedObject implements Multimap<K, V> { @CheckForNull transient Set<K> keySet; @CheckForNull transient Collection<V> valuesCollection; @@ -788,7 +788,7 @@ final class Synchronized { return new SynchronizedListMultimap<>(multimap, mutex); } - private static class SynchronizedListMultimap< + static final class SynchronizedListMultimap< K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedMultimap<K, V> implements ListMultimap<K, V> { SynchronizedListMultimap(ListMultimap<K, V> delegate, @CheckForNull Object mutex) { @@ -832,8 +832,7 @@ final class Synchronized { return new SynchronizedSetMultimap<>(multimap, mutex); } - private static class SynchronizedSetMultimap< - K extends @Nullable Object, V extends @Nullable Object> + static class SynchronizedSetMultimap<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedMultimap<K, V> implements SetMultimap<K, V> { @CheckForNull transient Set<Map.Entry<K, V>> entrySet; @@ -889,7 +888,7 @@ final class Synchronized { return new SynchronizedSortedSetMultimap<>(multimap, mutex); } - private static class SynchronizedSortedSetMultimap< + static final class SynchronizedSortedSetMultimap< K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedSetMultimap<K, V> implements SortedSetMultimap<K, V> { SynchronizedSortedSetMultimap(SortedSetMultimap<K, V> delegate, @CheckForNull Object mutex) { @@ -956,7 +955,7 @@ final class Synchronized { } } - private static class SynchronizedAsMapEntries< + static final class SynchronizedAsMapEntries< K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedSet<Map.Entry<K, Collection<V>>> { SynchronizedAsMapEntries( @@ -1063,7 +1062,7 @@ final class Synchronized { return new SynchronizedMap<>(map, mutex); } - private static class SynchronizedMap<K extends @Nullable Object, V extends @Nullable Object> + static class SynchronizedMap<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedObject implements Map<K, V> { @CheckForNull transient Set<K> keySet; @CheckForNull transient Collection<V> values; @@ -1188,17 +1187,25 @@ final class Synchronized { } } + /* + * TODO(cpovirk): Uncomment the @NonNull annotations below once our JDK stubs and J2KT + * emulations include them. + */ @Override + @CheckForNull public V computeIfPresent( - K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) { + K key, + BiFunction<? super K, ? super /*@NonNull*/ V, ? extends @Nullable V> remappingFunction) { synchronized (mutex) { return delegate().computeIfPresent(key, remappingFunction); } } @Override + @CheckForNull public V compute( - K key, BiFunction<? super K, ? super @Nullable V, ? extends V> remappingFunction) { + K key, + BiFunction<? super K, ? super @Nullable V, ? extends @Nullable V> remappingFunction) { synchronized (mutex) { return delegate().compute(key, remappingFunction); } @@ -1207,7 +1214,10 @@ final class Synchronized { @Override @CheckForNull public V merge( - K key, V value, BiFunction<? super V, ? super V, ? extends @Nullable V> remappingFunction) { + K key, + /*@NonNull*/ V value, + BiFunction<? super /*@NonNull*/ V, ? super /*@NonNull*/ V, ? extends @Nullable V> + remappingFunction) { synchronized (mutex) { return delegate().merge(key, value, remappingFunction); } @@ -1350,8 +1360,7 @@ final class Synchronized { return new SynchronizedBiMap<>(bimap, mutex, null); } - @VisibleForTesting - static class SynchronizedBiMap<K extends @Nullable Object, V extends @Nullable Object> + static final class SynchronizedBiMap<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedMap<K, V> implements BiMap<K, V>, Serializable { @CheckForNull private transient Set<V> valueSet; @RetainedWith @CheckForNull private transient BiMap<V, K> inverse; @@ -1398,7 +1407,7 @@ final class Synchronized { private static final long serialVersionUID = 0; } - private static class SynchronizedAsMap<K extends @Nullable Object, V extends @Nullable Object> + static final class SynchronizedAsMap<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedMap<K, Collection<V>> { @CheckForNull transient Set<Map.Entry<K, Collection<V>>> asMapEntrySet; @CheckForNull transient Collection<Collection<V>> asMapValues; @@ -1445,7 +1454,7 @@ final class Synchronized { private static final long serialVersionUID = 0; } - private static class SynchronizedAsMapValues<V extends @Nullable Object> + static final class SynchronizedAsMapValues<V extends @Nullable Object> extends SynchronizedCollection<Collection<V>> { SynchronizedAsMapValues(Collection<Collection<V>> delegate, @CheckForNull Object mutex) { super(delegate, mutex); @@ -1467,8 +1476,8 @@ final class Synchronized { @GwtIncompatible // NavigableSet @VisibleForTesting - static class SynchronizedNavigableSet<E extends @Nullable Object> extends SynchronizedSortedSet<E> - implements NavigableSet<E> { + static final class SynchronizedNavigableSet<E extends @Nullable Object> + extends SynchronizedSortedSet<E> implements NavigableSet<E> { SynchronizedNavigableSet(NavigableSet<E> delegate, @CheckForNull Object mutex) { super(delegate, mutex); } @@ -1611,7 +1620,8 @@ final class Synchronized { @GwtIncompatible // NavigableMap @VisibleForTesting - static class SynchronizedNavigableMap<K extends @Nullable Object, V extends @Nullable Object> + static final class SynchronizedNavigableMap< + K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedSortedMap<K, V> implements NavigableMap<K, V> { SynchronizedNavigableMap(NavigableMap<K, V> delegate, @CheckForNull Object mutex) { @@ -1812,7 +1822,7 @@ final class Synchronized { } @GwtIncompatible // works but is needed only for NavigableMap - private static class SynchronizedEntry<K extends @Nullable Object, V extends @Nullable Object> + static final class SynchronizedEntry<K extends @Nullable Object, V extends @Nullable Object> extends SynchronizedObject implements Map.Entry<K, V> { SynchronizedEntry(Map.Entry<K, V> delegate, @CheckForNull Object mutex) { @@ -1867,8 +1877,8 @@ final class Synchronized { return (queue instanceof SynchronizedQueue) ? queue : new SynchronizedQueue<E>(queue, mutex); } - private static class SynchronizedQueue<E extends @Nullable Object> - extends SynchronizedCollection<E> implements Queue<E> { + static class SynchronizedQueue<E extends @Nullable Object> extends SynchronizedCollection<E> + implements Queue<E> { SynchronizedQueue(Queue<E> delegate, @CheckForNull Object mutex) { super(delegate, mutex); @@ -1923,8 +1933,8 @@ final class Synchronized { return new SynchronizedDeque<E>(deque, mutex); } - private static final class SynchronizedDeque<E extends @Nullable Object> - extends SynchronizedQueue<E> implements Deque<E> { + static final class SynchronizedDeque<E extends @Nullable Object> extends SynchronizedQueue<E> + implements Deque<E> { SynchronizedDeque(Deque<E> delegate, @CheckForNull Object mutex) { super(delegate, mutex); @@ -2066,7 +2076,7 @@ final class Synchronized { return new SynchronizedTable<>(table, mutex); } - private static final class SynchronizedTable< + static final class SynchronizedTable< R extends @Nullable Object, C extends @Nullable Object, V extends @Nullable Object> extends SynchronizedObject implements Table<R, C, V> { |