diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2015-01-28 23:45:38 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2015-01-28 23:45:38 +0100 |
commit | 3e619a735e63a1222e71060d9e65b354a156b158 (patch) | |
tree | 2f31cdc65d0d773874800c114530eb620bcca536 /bt/src/main/java/io/trygvis/android/Optional.java | |
parent | c4685214d8db34166213ffa373a16af1a99401a5 (diff) | |
download | io.trygvis.soilmoisture-android-3e619a735e63a1222e71060d9e65b354a156b158.tar.gz io.trygvis.soilmoisture-android-3e619a735e63a1222e71060d9e65b354a156b158.tar.bz2 io.trygvis.soilmoisture-android-3e619a735e63a1222e71060d9e65b354a156b158.tar.xz io.trygvis.soilmoisture-android-3e619a735e63a1222e71060d9e65b354a156b158.zip |
o Major refactoring on the BtPromise, mainly internal. Renaming BtPromise to BtSequence and BtSequencer.
Diffstat (limited to 'bt/src/main/java/io/trygvis/android/Optional.java')
-rw-r--r-- | bt/src/main/java/io/trygvis/android/Optional.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/bt/src/main/java/io/trygvis/android/Optional.java b/bt/src/main/java/io/trygvis/android/Optional.java new file mode 100644 index 0000000..616f9a7 --- /dev/null +++ b/bt/src/main/java/io/trygvis/android/Optional.java @@ -0,0 +1,45 @@ +package io.trygvis.android; + +public final class Optional<T> { + private final T value; + + public Optional(T value) { + this.value = value; + } + + public T get() { + if (value == null) { + throw new IllegalStateException("get() on empty"); + } + + return value; + } + + public boolean isPresent() { + return value != null; + } + + public void ifPresent(Consumer<T> consumer) { + if (value == null) { + return; + } + + consumer.accept(value); + } + + public static <T> Optional<T> of(T t) { + if (t == null) { + throw new IllegalArgumentException("t can't be null"); + } + + return new Optional<>(t); + } + + public static <T> Optional<T> empty() { + return new Optional<>(null); + } + + public static <T> Optional<T> ofNullable(T t) { + return t != null ? of(t) : empty(); + } +} |