Initial commit
This commit is contained in:
117
sources/com/google/common/collect/MultimapBuilder.java
Normal file
117
sources/com/google/common/collect/MultimapBuilder.java
Normal file
@@ -0,0 +1,117 @@
|
||||
package com.google.common.collect;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class MultimapBuilder<K0, V0> {
|
||||
|
||||
/* renamed from: com.google.common.collect.MultimapBuilder$1, reason: invalid class name */
|
||||
final class AnonymousClass1 extends MultimapBuilderWithKeys<Object> {
|
||||
}
|
||||
|
||||
private static final class ArrayListSupplier<V> implements Supplier<List<V>>, Serializable {
|
||||
private final int a;
|
||||
|
||||
ArrayListSupplier(int i) {
|
||||
CollectPreconditions.a(i, "expectedValuesPerKey");
|
||||
this.a = i;
|
||||
}
|
||||
|
||||
@Override // com.google.common.base.Supplier
|
||||
public List<V> get() {
|
||||
return new ArrayList(this.a);
|
||||
}
|
||||
}
|
||||
|
||||
private static final class LinkedHashSetSupplier<V> implements Supplier<Set<V>>, Serializable {
|
||||
private final int a;
|
||||
|
||||
LinkedHashSetSupplier(int i) {
|
||||
CollectPreconditions.a(i, "expectedValuesPerKey");
|
||||
this.a = i;
|
||||
}
|
||||
|
||||
@Override // com.google.common.base.Supplier
|
||||
public Set<V> get() {
|
||||
return Sets.b(this.a);
|
||||
}
|
||||
}
|
||||
|
||||
public static abstract class ListMultimapBuilder<K0, V0> extends MultimapBuilder<K0, V0> {
|
||||
ListMultimapBuilder() {
|
||||
super(null);
|
||||
}
|
||||
|
||||
public abstract <K extends K0, V extends V0> ListMultimap<K, V> b();
|
||||
}
|
||||
|
||||
public static abstract class MultimapBuilderWithKeys<K0> {
|
||||
MultimapBuilderWithKeys() {
|
||||
}
|
||||
|
||||
public ListMultimapBuilder<K0, Object> a() {
|
||||
return a(2);
|
||||
}
|
||||
|
||||
public SetMultimapBuilder<K0, Object> b(final int i) {
|
||||
CollectPreconditions.a(i, "expectedValuesPerKey");
|
||||
return new SetMultimapBuilder<K0, Object>() { // from class: com.google.common.collect.MultimapBuilder.MultimapBuilderWithKeys.4
|
||||
@Override // com.google.common.collect.MultimapBuilder.SetMultimapBuilder
|
||||
public <K extends K0, V> SetMultimap<K, V> b() {
|
||||
return Multimaps.b(MultimapBuilderWithKeys.this.b(), new LinkedHashSetSupplier(i));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
abstract <K extends K0, V> Map<K, Collection<V>> b();
|
||||
|
||||
public SetMultimapBuilder<K0, Object> c() {
|
||||
return b(2);
|
||||
}
|
||||
|
||||
public ListMultimapBuilder<K0, Object> a(final int i) {
|
||||
CollectPreconditions.a(i, "expectedValuesPerKey");
|
||||
return new ListMultimapBuilder<K0, Object>() { // from class: com.google.common.collect.MultimapBuilder.MultimapBuilderWithKeys.1
|
||||
@Override // com.google.common.collect.MultimapBuilder.ListMultimapBuilder
|
||||
public <K extends K0, V> ListMultimap<K, V> b() {
|
||||
return Multimaps.a(MultimapBuilderWithKeys.this.b(), new ArrayListSupplier(i));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public static abstract class SetMultimapBuilder<K0, V0> extends MultimapBuilder<K0, V0> {
|
||||
SetMultimapBuilder() {
|
||||
super(null);
|
||||
}
|
||||
|
||||
public abstract <K extends K0, V extends V0> SetMultimap<K, V> b();
|
||||
}
|
||||
|
||||
/* synthetic */ MultimapBuilder(AnonymousClass1 anonymousClass1) {
|
||||
this();
|
||||
}
|
||||
|
||||
public static MultimapBuilderWithKeys<Object> a() {
|
||||
return a(8);
|
||||
}
|
||||
|
||||
private MultimapBuilder() {
|
||||
}
|
||||
|
||||
public static MultimapBuilderWithKeys<Object> a(final int i) {
|
||||
CollectPreconditions.a(i, "expectedKeys");
|
||||
return new MultimapBuilderWithKeys<Object>() { // from class: com.google.common.collect.MultimapBuilder.2
|
||||
@Override // com.google.common.collect.MultimapBuilder.MultimapBuilderWithKeys
|
||||
<K, V> Map<K, Collection<V>> b() {
|
||||
return Maps.c(i);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user