Don’t hand in null to function not allowing it
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / MemoryPost.java
index acf2374..75eae49 100644 (file)
 
 package net.pterodactylus.sone.database.memory;
 
+import static com.google.common.base.Optional.fromNullable;
+
 import java.util.UUID;
 
+import javax.annotation.Nullable;
+
 import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.sone.database.SoneProvider;
 
+import com.google.common.base.Function;
 import com.google.common.base.Optional;
 
 /**
  * A post is a short message that a user writes in his Sone to let other users
  * know what is going on.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 class MemoryPost implements Post {
 
@@ -104,7 +107,7 @@ class MemoryPost implements Post {
         */
        @Override
        public Sone getSone() {
-               return soneProvider.getSone(soneId).get();
+               return soneProvider.getSone(soneId);
        }
 
        /**
@@ -112,7 +115,7 @@ class MemoryPost implements Post {
         */
        @Override
        public Optional<String> getRecipientId() {
-               return Optional.fromNullable(recipientId);
+               return fromNullable(recipientId);
        }
 
        /**
@@ -120,7 +123,13 @@ class MemoryPost implements Post {
         */
        @Override
        public Optional<Sone> getRecipient() {
-               return soneProvider.getSone(recipientId);
+               return Optional.fromNullable(recipientId).transform(new Function<String, Sone>() {
+                       @Nullable
+                       @Override
+                       public Sone apply(String input) {
+                               return soneProvider.getSone(input);
+                       }
+               });
        }
 
        /**