MAILBOX-357 Use functional paradigm in ListeningSearchIndex

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/205f8178
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/205f8178
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/205f8178

Branch: refs/heads/master
Commit: 205f8178a6f84b0cefa08c127e4b43d51d0a900d
Parents: 2ef26a7
Author: Benoit Tellier <[email protected]>
Authored: Tue Dec 11 09:02:09 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Wed Dec 12 17:50:58 2018 +0700

----------------------------------------------------------------------
 .../store/search/ListeningMessageSearchIndex.java   | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/205f8178/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index e02b736..e11dc86 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -19,7 +19,7 @@
 package org.apache.james.mailbox.store.search;
 
 import java.util.List;
-import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxListener;
@@ -69,10 +69,10 @@ public abstract class ListeningMessageSearchIndex 
implements MessageSearchIndex,
                 if (event instanceof Added) {
                     Added added = (Added) event;
 
-                    for (MessageUid uid : added.getUids()) {
-                        retrieveMailboxMessage(session, mailbox, uid)
-                            .ifPresent(mailboxMessage -> addMessage(session, 
mailbox, mailboxMessage));
-                    }
+                    added.getUids()
+                        .stream()
+                        .flatMap(uid -> retrieveMailboxMessage(session, 
mailbox, uid))
+                        .forEach(mailboxMessage -> addMessage(session, 
mailbox, mailboxMessage));
                 } else if (event instanceof Expunged) {
                     Expunged expunged = (Expunged) event;
                     try {
@@ -97,14 +97,14 @@ public abstract class ListeningMessageSearchIndex 
implements MessageSearchIndex,
         }
     }
 
-    private Optional<MailboxMessage> retrieveMailboxMessage(MailboxSession 
session, Mailbox mailbox, MessageUid uid) {
+    private Stream<MailboxMessage> retrieveMailboxMessage(MailboxSession 
session, Mailbox mailbox, MessageUid uid) {
         try {
-            return Optional.of(factory.getMessageMapper(session)
+            return Stream.of(factory.getMessageMapper(session)
                 .findInMailbox(mailbox, MessageRange.one(uid), FetchType.Full, 
UNLIMITED)
                 .next());
         } catch (Exception e) {
             LOGGER.error("Could not retrieve message {} in mailbox {}", 
uid.asLong(), mailbox.getMailboxId().serialize(), e);
-            return Optional.empty();
+            return Stream.empty();
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to