This repository has been archived on 2023-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
2022-05-05 15:33:11 +02:00
|
|
|
package it.cavallium.data.generator;
|
|
|
|
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
2022-05-06 10:07:33 +02:00
|
|
|
import org.jetbrains.annotations.Nullable;
|
2022-05-05 15:33:11 +02:00
|
|
|
|
|
|
|
public interface TypedNullable<T> extends NativeNullable<T> {
|
|
|
|
|
|
|
|
@NotNull
|
2022-05-06 10:07:33 +02:00
|
|
|
default T get() throws NullPointerException {
|
|
|
|
var value = getNullable();
|
|
|
|
if (value == null) {
|
|
|
|
throw new NullPointerException();
|
|
|
|
} else {
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
default @Nullable T getNullable(@Nullable T defaultValue) {
|
|
|
|
var value = getNullable();
|
|
|
|
return value == null ? defaultValue : value;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
default @NotNull T orElse(@NotNull T defaultValue) {
|
|
|
|
var value = getNullable();
|
|
|
|
if (value == null) {
|
|
|
|
throw new NullPointerException();
|
|
|
|
} else {
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
default @NotNull NativeNullable<? extends T> or(@NotNull NativeNullable<? extends T> fallback) {
|
|
|
|
var value = getNullable();
|
|
|
|
if (value == null) {
|
|
|
|
return fallback;
|
|
|
|
} else {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
default boolean isPresent() {
|
|
|
|
return getNullable() != null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
default boolean isEmpty() {
|
|
|
|
return getNullable() == null;
|
|
|
|
}
|
2022-05-05 15:33:11 +02:00
|
|
|
}
|