aboutsummaryrefslogtreecommitdiff
path: root/bt/src/main/java/io/trygvis/android/Optional.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-01-28 23:45:38 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2015-01-28 23:45:38 +0100
commit3e619a735e63a1222e71060d9e65b354a156b158 (patch)
tree2f31cdc65d0d773874800c114530eb620bcca536 /bt/src/main/java/io/trygvis/android/Optional.java
parentc4685214d8db34166213ffa373a16af1a99401a5 (diff)
downloadio.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.java45
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();
+ }
+}