You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/12/12 10:52:08 UTC

[15/16] james-project git commit: MAILBOX-357 Use method extraction to make ListeningMessageSearchIndex more readable

MAILBOX-357 Use method extraction to make ListeningMessageSearchIndex more readable


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

Branch: refs/heads/master
Commit: 0e01d39cbd476bdf8c1b82c4cd5ba11cd974f1b7
Parents: 205f817
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Dec 11 10:09:05 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 12 17:50:58 2018 +0700

----------------------------------------------------------------------
 .../search/ListeningMessageSearchIndex.java     | 69 ++++++++++++--------
 1 file changed, 40 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0e01d39c/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 e11dc86..7de8fcc 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
@@ -61,42 +61,53 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
     @Override
     public void event(Event event) {
         try {
-            MailboxSession session = mailboxManager.createSystemSession(event.getUser().asString());
             if (event instanceof MailboxEvent) {
-                MailboxEvent mailboxEvent = (MailboxEvent) event;
-                Mailbox mailbox = factory.getMailboxMapper(session).findMailboxById(mailboxEvent.getMailboxId());
-
-                if (event instanceof Added) {
-                    Added added = (Added) event;
-
-                    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 {
-                        delete(session, mailbox, expunged.getUids());
-                    } catch (MailboxException e) {
-                        LOGGER.error("Unable to deleted messages {} from index for mailbox {}", expunged.getUids(), mailbox, e);
-                    }
-                } else if (event instanceof FlagsUpdated) {
-                    FlagsUpdated flagsUpdated = (FlagsUpdated) event;
-
-                    try {
-                        update(session, mailbox, flagsUpdated.getUpdatedFlags());
-                    } catch (MailboxException e) {
-                        LOGGER.error("Unable to update flags in index for mailbox {}", mailbox, e);
-                    }
-                } else if (event instanceof MailboxDeletion) {
-                    deleteAll(session, mailbox);
-                }
+                handleMailboxEvent(event,
+                    mailboxManager.createSystemSession(event.getUser().asString()),
+                    (MailboxEvent) event);
             }
         } catch (MailboxException e) {
             LOGGER.error("Unable to update index", e);
         }
     }
 
+    private void handleMailboxEvent(Event event, MailboxSession session, MailboxEvent mailboxEvent) throws MailboxException {
+        Mailbox mailbox = factory.getMailboxMapper(session).findMailboxById(mailboxEvent.getMailboxId());
+
+        if (event instanceof Added) {
+            handleAdded(session, mailbox, (Added) event);
+        } else if (event instanceof Expunged) {
+            handleExpunged(session, mailbox, (Expunged) event);
+        } else if (event instanceof FlagsUpdated) {
+            handleFlagsUpdated(session, mailbox, (FlagsUpdated) event);
+        } else if (event instanceof MailboxDeletion) {
+            deleteAll(session, mailbox);
+        }
+    }
+
+    private void handleFlagsUpdated(MailboxSession session, Mailbox mailbox, FlagsUpdated flagsUpdated) {
+        try {
+            update(session, mailbox, flagsUpdated.getUpdatedFlags());
+        } catch (MailboxException e) {
+            LOGGER.error("Unable to update flags in index for mailbox {}", mailbox, e);
+        }
+    }
+
+    private void handleExpunged(MailboxSession session, Mailbox mailbox, Expunged expunged) {
+        try {
+            delete(session, mailbox, expunged.getUids());
+        } catch (MailboxException e) {
+            LOGGER.error("Unable to deleted messages {} from index for mailbox {}", expunged.getUids(), mailbox, e);
+        }
+    }
+
+    private void handleAdded(MailboxSession session, Mailbox mailbox, Added added) {
+        added.getUids()
+            .stream()
+            .flatMap(uid -> retrieveMailboxMessage(session, mailbox, uid))
+            .forEach(mailboxMessage -> addMessage(session, mailbox, mailboxMessage));
+    }
+
     private Stream<MailboxMessage> retrieveMailboxMessage(MailboxSession session, Mailbox mailbox, MessageUid uid) {
         try {
             return Stream.of(factory.getMessageMapper(session)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org