78 lines
2.3 KiB
Java
78 lines
2.3 KiB
Java
package com.google.common.base;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.Iterator;
|
|
import java.util.Set;
|
|
|
|
/* loaded from: classes.dex */
|
|
public abstract class Optional<T> implements Serializable {
|
|
private static final long serialVersionUID = 0;
|
|
|
|
Optional() {
|
|
}
|
|
|
|
public static <T> Optional<T> absent() {
|
|
return Absent.a();
|
|
}
|
|
|
|
public static <T> Optional<T> fromNullable(T t) {
|
|
return t == null ? absent() : new Present(t);
|
|
}
|
|
|
|
public static <T> Optional<T> of(T t) {
|
|
Preconditions.a(t);
|
|
return new Present(t);
|
|
}
|
|
|
|
public static <T> Iterable<T> presentInstances(final Iterable<? extends Optional<? extends T>> iterable) {
|
|
Preconditions.a(iterable);
|
|
return new Iterable<T>() { // from class: com.google.common.base.Optional.1
|
|
@Override // java.lang.Iterable
|
|
public Iterator<T> iterator() {
|
|
return new AbstractIterator<T>() { // from class: com.google.common.base.Optional.1.1
|
|
private final Iterator<? extends Optional<? extends T>> c;
|
|
|
|
{
|
|
Iterator<? extends Optional<? extends T>> it = iterable.iterator();
|
|
Preconditions.a(it);
|
|
this.c = it;
|
|
}
|
|
|
|
@Override // com.google.common.base.AbstractIterator
|
|
protected T a() {
|
|
while (this.c.hasNext()) {
|
|
Optional<? extends T> next = this.c.next();
|
|
if (next.isPresent()) {
|
|
return next.get();
|
|
}
|
|
}
|
|
return b();
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}
|
|
|
|
public abstract Set<T> asSet();
|
|
|
|
public abstract boolean equals(Object obj);
|
|
|
|
public abstract T get();
|
|
|
|
public abstract int hashCode();
|
|
|
|
public abstract boolean isPresent();
|
|
|
|
public abstract Optional<T> or(Optional<? extends T> optional);
|
|
|
|
public abstract T or(Supplier<? extends T> supplier);
|
|
|
|
public abstract T or(T t);
|
|
|
|
public abstract T orNull();
|
|
|
|
public abstract String toString();
|
|
|
|
public abstract <V> Optional<V> transform(Function<? super T, V> function);
|
|
}
|