jimu-decompiled/sources/com/google/common/collect/ImmutableSetMultimap.java
2025-05-13 19:24:51 +02:00

357 lines
15 KiB
Java

package com.google.common.collect;
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Serialization;
import java.io.IOException;
import java.io.InvalidObjectException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
import java.util.Set;
/* loaded from: classes.dex */
public class ImmutableSetMultimap<K, V> extends ImmutableMultimap<K, V> implements SetMultimap<K, V> {
private static final long serialVersionUID = 0;
private final transient ImmutableSet<V> emptySet;
private transient ImmutableSet<Map.Entry<K, V>> entries;
private transient ImmutableSetMultimap<V, K> inverse;
public static final class Builder<K, V> extends ImmutableMultimap.Builder<K, V> {
public Builder() {
super(MultimapBuilder.a().c().b());
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap.Builder
public /* bridge */ /* synthetic */ ImmutableMultimap.Builder a(Object obj, Object obj2) {
a((Builder<K, V>) obj, obj2);
return this;
}
@Override // com.google.common.collect.ImmutableMultimap.Builder
public /* bridge */ /* synthetic */ ImmutableMultimap.Builder a(Map.Entry entry) {
a(entry);
return this;
}
@Override // com.google.common.collect.ImmutableMultimap.Builder
public Builder<K, V> a(K k, V v) {
Multimap<K, V> multimap = this.a;
Preconditions.a(k);
Preconditions.a(v);
multimap.put(k, v);
return this;
}
@Override // com.google.common.collect.ImmutableMultimap.Builder
public Builder<K, V> a(Map.Entry<? extends K, ? extends V> entry) {
Multimap<K, V> multimap = this.a;
K key = entry.getKey();
Preconditions.a(key);
V value = entry.getValue();
Preconditions.a(value);
multimap.put(key, value);
return this;
}
@Override // com.google.common.collect.ImmutableMultimap.Builder
public Builder<K, V> a(Iterable<? extends Map.Entry<? extends K, ? extends V>> iterable) {
super.a((Iterable) iterable);
return this;
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap.Builder
public ImmutableSetMultimap<K, V> a() {
if (this.b != null) {
AbstractListMultimap b = MultimapBuilder.a().c().b();
for (Map.Entry entry : Ordering.a(this.b).a().a(this.a.asMap().entrySet())) {
b.putAll(entry.getKey(), (Iterable) entry.getValue());
}
this.a = b;
}
return ImmutableSetMultimap.copyOf(this.a, this.c);
}
}
private static final class EntrySet<K, V> extends ImmutableSet<Map.Entry<K, V>> {
private final transient ImmutableSetMultimap<K, V> a;
EntrySet(ImmutableSetMultimap<K, V> immutableSetMultimap) {
this.a = immutableSetMultimap;
}
@Override // com.google.common.collect.ImmutableCollection, java.util.AbstractCollection, java.util.Collection, java.util.Set
public boolean contains(Object obj) {
if (!(obj instanceof Map.Entry)) {
return false;
}
Map.Entry entry = (Map.Entry) obj;
return this.a.containsEntry(entry.getKey(), entry.getValue());
}
@Override // com.google.common.collect.ImmutableCollection
boolean isPartialView() {
return false;
}
@Override // java.util.AbstractCollection, java.util.Collection, java.util.Set
public int size() {
return this.a.size();
}
@Override // com.google.common.collect.ImmutableSet, com.google.common.collect.ImmutableCollection, java.util.AbstractCollection, java.util.Collection, java.lang.Iterable, java.util.Set, java.util.NavigableSet
public UnmodifiableIterator<Map.Entry<K, V>> iterator() {
return this.a.entryIterator();
}
}
ImmutableSetMultimap(ImmutableMap<K, ImmutableSet<V>> immutableMap, int i, Comparator<? super V> comparator) {
super(immutableMap, i);
this.emptySet = emptySet(comparator);
}
public static <K, V> Builder<K, V> builder() {
return new Builder<>();
}
public static <K, V> ImmutableSetMultimap<K, V> copyOf(Multimap<? extends K, ? extends V> multimap) {
return copyOf(multimap, null);
}
private static <V> ImmutableSet<V> emptySet(Comparator<? super V> comparator) {
return comparator == null ? ImmutableSet.of() : ImmutableSortedSet.emptySet(comparator);
}
/* JADX WARN: Multi-variable type inference failed */
private ImmutableSetMultimap<V, K> invert() {
Builder builder = builder();
UnmodifiableIterator it = entries().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
builder.a((Builder) entry.getValue(), entry.getKey());
}
ImmutableSetMultimap<V, K> a = builder.a();
a.inverse = this;
return a;
}
public static <K, V> ImmutableSetMultimap<K, V> of() {
return EmptyImmutableSetMultimap.a;
}
/* JADX WARN: Multi-variable type inference failed */
private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
objectInputStream.defaultReadObject();
Comparator comparator = (Comparator) objectInputStream.readObject();
int readInt = objectInputStream.readInt();
if (readInt < 0) {
throw new InvalidObjectException("Invalid key count " + readInt);
}
ImmutableMap.Builder builder = ImmutableMap.builder();
int i = 0;
for (int i2 = 0; i2 < readInt; i2++) {
Object readObject = objectInputStream.readObject();
int readInt2 = objectInputStream.readInt();
if (readInt2 <= 0) {
throw new InvalidObjectException("Invalid value count " + readInt2);
}
ImmutableSet.Builder valuesBuilder = valuesBuilder(comparator);
for (int i3 = 0; i3 < readInt2; i3++) {
valuesBuilder.a((ImmutableSet.Builder) objectInputStream.readObject());
}
ImmutableSet a = valuesBuilder.a();
if (a.size() != readInt2) {
throw new InvalidObjectException("Duplicate key-value pairs exist for key " + readObject);
}
builder.a(readObject, a);
i += readInt2;
}
try {
ImmutableMultimap.FieldSettersHolder.a.a((Serialization.FieldSetter<ImmutableMultimap>) this, (Object) builder.a());
ImmutableMultimap.FieldSettersHolder.b.a((Serialization.FieldSetter<ImmutableMultimap>) this, i);
ImmutableMultimap.FieldSettersHolder.c.a((Serialization.FieldSetter<ImmutableSetMultimap>) this, (Object) emptySet(comparator));
} catch (IllegalArgumentException e) {
throw ((InvalidObjectException) new InvalidObjectException(e.getMessage()).initCause(e));
}
}
private static <V> ImmutableSet<V> valueSet(Comparator<? super V> comparator, Collection<? extends V> collection) {
return comparator == null ? ImmutableSet.copyOf((Collection) collection) : ImmutableSortedSet.copyOf((Comparator) comparator, (Collection) collection);
}
private static <V> ImmutableSet.Builder<V> valuesBuilder(Comparator<? super V> comparator) {
return comparator == null ? new ImmutableSet.Builder<>() : new ImmutableSortedSet.Builder(comparator);
}
private void writeObject(ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.defaultWriteObject();
objectOutputStream.writeObject(valueComparator());
Serialization.a(this, objectOutputStream);
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
public /* bridge */ /* synthetic */ ImmutableCollection get(Object obj) {
return get((ImmutableSetMultimap<K, V>) obj);
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap
@Deprecated
public /* bridge */ /* synthetic */ ImmutableCollection replaceValues(Object obj, Iterable iterable) {
return replaceValues((ImmutableSetMultimap<K, V>) obj, iterable);
}
Comparator<? super V> valueComparator() {
ImmutableSet<V> immutableSet = this.emptySet;
if (immutableSet instanceof ImmutableSortedSet) {
return ((ImmutableSortedSet) immutableSet).comparator();
}
return null;
}
/* JADX INFO: Access modifiers changed from: private */
public static <K, V> ImmutableSetMultimap<K, V> copyOf(Multimap<? extends K, ? extends V> multimap, Comparator<? super V> comparator) {
Preconditions.a(multimap);
if (multimap.isEmpty() && comparator == null) {
return of();
}
if (multimap instanceof ImmutableSetMultimap) {
ImmutableSetMultimap<K, V> immutableSetMultimap = (ImmutableSetMultimap) multimap;
if (!immutableSetMultimap.isPartialView()) {
return immutableSetMultimap;
}
}
ImmutableMap.Builder builder = new ImmutableMap.Builder(multimap.asMap().size());
int i = 0;
for (Map.Entry<? extends K, Collection<? extends V>> entry : multimap.asMap().entrySet()) {
K key = entry.getKey();
ImmutableSet valueSet = valueSet(comparator, entry.getValue());
if (!valueSet.isEmpty()) {
builder.a(key, valueSet);
i += valueSet.size();
}
}
return new ImmutableSetMultimap<>(builder.a(), i, comparator);
}
public static <K, V> ImmutableSetMultimap<K, V> of(K k, V v) {
Builder builder = builder();
builder.a((Builder) k, (K) v);
return builder.a();
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
public /* bridge */ /* synthetic */ Collection get(Object obj) {
return get((ImmutableSetMultimap<K, V>) obj);
}
@Override // com.google.common.collect.ImmutableMultimap
public ImmutableSetMultimap<V, K> inverse() {
ImmutableSetMultimap<V, K> immutableSetMultimap = this.inverse;
if (immutableSetMultimap != null) {
return immutableSetMultimap;
}
ImmutableSetMultimap<V, K> invert = invert();
this.inverse = invert;
return invert;
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap
@Deprecated
public /* bridge */ /* synthetic */ Collection replaceValues(Object obj, Iterable iterable) {
return replaceValues((ImmutableSetMultimap<K, V>) obj, iterable);
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
public /* bridge */ /* synthetic */ Set get(Object obj) {
return get((ImmutableSetMultimap<K, V>) obj);
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap
@Deprecated
public /* bridge */ /* synthetic */ Set replaceValues(Object obj, Iterable iterable) {
return replaceValues((ImmutableSetMultimap<K, V>) obj, iterable);
}
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap, com.google.common.collect.Multimap
public ImmutableSet<Map.Entry<K, V>> entries() {
ImmutableSet<Map.Entry<K, V>> immutableSet = this.entries;
if (immutableSet != null) {
return immutableSet;
}
EntrySet entrySet = new EntrySet(this);
this.entries = entrySet;
return entrySet;
}
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
public ImmutableSet<V> get(K k) {
return (ImmutableSet) MoreObjects.a((ImmutableSet) this.map.get(k), this.emptySet);
}
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
@Deprecated
public ImmutableSet<V> removeAll(Object obj) {
throw new UnsupportedOperationException();
}
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap
@Deprecated
public ImmutableSet<V> replaceValues(K k, Iterable<? extends V> iterable) {
throw new UnsupportedOperationException();
}
public static <K, V> ImmutableSetMultimap<K, V> of(K k, V v, K k2, V v2) {
Builder builder = builder();
builder.a((Builder) k, (K) v);
builder.a((Builder) k2, (K) v2);
return builder.a();
}
public static <K, V> ImmutableSetMultimap<K, V> of(K k, V v, K k2, V v2, K k3, V v3) {
Builder builder = builder();
builder.a((Builder) k, (K) v);
builder.a((Builder) k2, (K) v2);
builder.a((Builder) k3, (K) v3);
return builder.a();
}
public static <K, V> ImmutableSetMultimap<K, V> of(K k, V v, K k2, V v2, K k3, V v3, K k4, V v4) {
Builder builder = builder();
builder.a((Builder) k, (K) v);
builder.a((Builder) k2, (K) v2);
builder.a((Builder) k3, (K) v3);
builder.a((Builder) k4, (K) v4);
return builder.a();
}
public static <K, V> ImmutableSetMultimap<K, V> copyOf(Iterable<? extends Map.Entry<? extends K, ? extends V>> iterable) {
Builder builder = new Builder();
builder.a((Iterable) iterable);
return builder.a();
}
public static <K, V> ImmutableSetMultimap<K, V> of(K k, V v, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
Builder builder = builder();
builder.a((Builder) k, (K) v);
builder.a((Builder) k2, (K) v2);
builder.a((Builder) k3, (K) v3);
builder.a((Builder) k4, (K) v4);
builder.a((Builder) k5, (K) v5);
return builder.a();
}
}