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

189 lines
5.5 KiB
Java

package com.google.common.collect;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.io.Serializable;
import java.util.AbstractCollection;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
/* loaded from: classes.dex */
public abstract class ImmutableCollection<E> extends AbstractCollection<E> implements Serializable {
private static final Object[] EMPTY_ARRAY = new Object[0];
ImmutableCollection() {
}
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final boolean add(E e) {
throw new UnsupportedOperationException();
}
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final boolean addAll(Collection<? extends E> collection) {
throw new UnsupportedOperationException();
}
public ImmutableList<E> asList() {
return isEmpty() ? ImmutableList.of() : ImmutableList.asImmutableList(toArray());
}
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final void clear() {
throw new UnsupportedOperationException();
}
@Override // java.util.AbstractCollection, java.util.Collection, java.util.Set
public abstract boolean contains(Object obj);
int copyIntoArray(Object[] objArr, int i) {
UnmodifiableIterator<E> it = iterator();
while (it.hasNext()) {
objArr[i] = it.next();
i++;
}
return i;
}
abstract boolean isPartialView();
@Override // java.util.AbstractCollection, java.util.Collection, java.lang.Iterable, java.util.Set, java.util.NavigableSet
public abstract UnmodifiableIterator<E> iterator();
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final boolean remove(Object obj) {
throw new UnsupportedOperationException();
}
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final boolean removeAll(Collection<?> collection) {
throw new UnsupportedOperationException();
}
@Override // java.util.AbstractCollection, java.util.Collection
@Deprecated
public final boolean retainAll(Collection<?> collection) {
throw new UnsupportedOperationException();
}
@Override // java.util.AbstractCollection, java.util.Collection
public final Object[] toArray() {
int size = size();
if (size == 0) {
return EMPTY_ARRAY;
}
Object[] objArr = new Object[size];
copyIntoArray(objArr, 0);
return objArr;
}
Object writeReplace() {
return new ImmutableList.SerializedForm(toArray());
}
public static abstract class Builder<E> {
Builder() {
}
static int a(int i, int i2) {
if (i2 < 0) {
throw new AssertionError("cannot store more than MAX_VALUE elements");
}
int i3 = i + (i >> 1) + 1;
if (i3 < i2) {
i3 = Integer.highestOneBit(i2 - 1) << 1;
}
if (i3 < 0) {
return Integer.MAX_VALUE;
}
return i3;
}
public abstract Builder<E> a(E e);
public Builder<E> a(E... eArr) {
for (E e : eArr) {
a((Builder<E>) e);
}
return this;
}
public Builder<E> a(Iterable<? extends E> iterable) {
Iterator<? extends E> it = iterable.iterator();
while (it.hasNext()) {
a((Builder<E>) it.next());
}
return this;
}
public Builder<E> a(Iterator<? extends E> it) {
while (it.hasNext()) {
a((Builder<E>) it.next());
}
return this;
}
}
@Override // java.util.AbstractCollection, java.util.Collection
public final <T> T[] toArray(T[] tArr) {
Preconditions.a(tArr);
int size = size();
if (tArr.length < size) {
tArr = (T[]) ObjectArrays.b(tArr, size);
} else if (tArr.length > size) {
tArr[size] = null;
}
copyIntoArray(tArr, 0);
return tArr;
}
static abstract class ArrayBasedBuilder<E> extends Builder<E> {
Object[] a;
int b;
boolean c;
ArrayBasedBuilder(int i) {
CollectPreconditions.a(i, "initialCapacity");
this.a = new Object[i];
this.b = 0;
}
private void a(int i) {
Object[] objArr = this.a;
if (objArr.length < i) {
this.a = Arrays.copyOf(objArr, Builder.a(objArr.length, i));
this.c = false;
} else if (this.c) {
this.a = (Object[]) objArr.clone();
this.c = false;
}
}
@Override // com.google.common.collect.ImmutableCollection.Builder
public ArrayBasedBuilder<E> a(E e) {
Preconditions.a(e);
a(this.b + 1);
Object[] objArr = this.a;
int i = this.b;
this.b = i + 1;
objArr[i] = e;
return this;
}
@Override // com.google.common.collect.ImmutableCollection.Builder
public Builder<E> a(E... eArr) {
ObjectArrays.a(eArr);
a(this.b + eArr.length);
System.arraycopy(eArr, 0, this.a, this.b, eArr.length);
this.b += eArr.length;
return this;
}
}
}