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]
