254 lines
10 KiB
Java
254 lines
10 KiB
Java
package com.google.common.collect;
|
|
|
|
import com.google.common.collect.ImmutableList;
|
|
import com.google.common.collect.ImmutableMap;
|
|
import com.google.common.collect.ImmutableMultimap;
|
|
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.List;
|
|
import java.util.Map;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class ImmutableListMultimap<K, V> extends ImmutableMultimap<K, V> implements ListMultimap<K, V> {
|
|
private static final long serialVersionUID = 0;
|
|
private transient ImmutableListMultimap<V, K> inverse;
|
|
|
|
public static final class Builder<K, V> extends ImmutableMultimap.Builder<K, V> {
|
|
/* 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) {
|
|
super.a((Builder<K, V>) k, (K) v);
|
|
return this;
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap.Builder
|
|
public Builder<K, V> a(Map.Entry<? extends K, ? extends V> entry) {
|
|
super.a((Map.Entry) entry);
|
|
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;
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap.Builder
|
|
public ImmutableListMultimap<K, V> a() {
|
|
return (ImmutableListMultimap) super.a();
|
|
}
|
|
}
|
|
|
|
ImmutableListMultimap(ImmutableMap<K, ImmutableList<V>> immutableMap, int i) {
|
|
super(immutableMap, i);
|
|
}
|
|
|
|
public static <K, V> Builder<K, V> builder() {
|
|
return new Builder<>();
|
|
}
|
|
|
|
public static <K, V> ImmutableListMultimap<K, V> copyOf(Multimap<? extends K, ? extends V> multimap) {
|
|
if (multimap.isEmpty()) {
|
|
return of();
|
|
}
|
|
if (multimap instanceof ImmutableListMultimap) {
|
|
ImmutableListMultimap<K, V> immutableListMultimap = (ImmutableListMultimap) multimap;
|
|
if (!immutableListMultimap.isPartialView()) {
|
|
return immutableListMultimap;
|
|
}
|
|
}
|
|
ImmutableMap.Builder builder = new ImmutableMap.Builder(multimap.asMap().size());
|
|
int i = 0;
|
|
for (Map.Entry<? extends K, Collection<? extends V>> entry : multimap.asMap().entrySet()) {
|
|
ImmutableList copyOf = ImmutableList.copyOf((Collection) entry.getValue());
|
|
if (!copyOf.isEmpty()) {
|
|
builder.a(entry.getKey(), copyOf);
|
|
i += copyOf.size();
|
|
}
|
|
}
|
|
return new ImmutableListMultimap<>(builder.a(), i);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
private ImmutableListMultimap<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());
|
|
}
|
|
ImmutableListMultimap<V, K> a = builder.a();
|
|
a.inverse = this;
|
|
return a;
|
|
}
|
|
|
|
public static <K, V> ImmutableListMultimap<K, V> of() {
|
|
return EmptyImmutableListMultimap.a;
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
|
|
objectInputStream.defaultReadObject();
|
|
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);
|
|
}
|
|
ImmutableList.Builder builder2 = ImmutableList.builder();
|
|
for (int i3 = 0; i3 < readInt2; i3++) {
|
|
builder2.a((ImmutableList.Builder) objectInputStream.readObject());
|
|
}
|
|
builder.a(readObject, builder2.a());
|
|
i += readInt2;
|
|
}
|
|
try {
|
|
ImmutableMultimap.FieldSettersHolder.a.a((Serialization.FieldSetter<ImmutableMultimap>) this, (Object) builder.a());
|
|
ImmutableMultimap.FieldSettersHolder.b.a((Serialization.FieldSetter<ImmutableMultimap>) this, i);
|
|
} catch (IllegalArgumentException e) {
|
|
throw ((InvalidObjectException) new InvalidObjectException(e.getMessage()).initCause(e));
|
|
}
|
|
}
|
|
|
|
private void writeObject(ObjectOutputStream objectOutputStream) throws IOException {
|
|
objectOutputStream.defaultWriteObject();
|
|
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((ImmutableListMultimap<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((ImmutableListMultimap<K, V>) obj, iterable);
|
|
}
|
|
|
|
public static <K, V> ImmutableListMultimap<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((ImmutableListMultimap<K, V>) obj);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap
|
|
public ImmutableListMultimap<V, K> inverse() {
|
|
ImmutableListMultimap<V, K> immutableListMultimap = this.inverse;
|
|
if (immutableListMultimap != null) {
|
|
return immutableListMultimap;
|
|
}
|
|
ImmutableListMultimap<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((ImmutableListMultimap<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 */ List get(Object obj) {
|
|
return get((ImmutableListMultimap<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 */ List replaceValues(Object obj, Iterable iterable) {
|
|
return replaceValues((ImmutableListMultimap<K, V>) obj, iterable);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
|
|
public ImmutableList<V> get(K k) {
|
|
ImmutableList<V> immutableList = (ImmutableList) this.map.get(k);
|
|
return immutableList == null ? ImmutableList.of() : immutableList;
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.Multimap
|
|
@Deprecated
|
|
public ImmutableList<V> removeAll(Object obj) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override // com.google.common.collect.ImmutableMultimap, com.google.common.collect.AbstractMultimap
|
|
@Deprecated
|
|
public ImmutableList<V> replaceValues(K k, Iterable<? extends V> iterable) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
public static <K, V> ImmutableListMultimap<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> ImmutableListMultimap<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> ImmutableListMultimap<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> ImmutableListMultimap<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> ImmutableListMultimap<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();
|
|
}
|
|
}
|