aboutsummaryrefslogtreecommitdiff
path: root/guava/src/com/google/common/collect/Synchronized.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava/src/com/google/common/collect/Synchronized.java')
-rw-r--r--guava/src/com/google/common/collect/Synchronized.java64
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> {