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 2020/07/23 07:53:19 UTC

[james-project] 08/18: JAMES-3177 extraction of method handling events

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit eb806e3d6069749c291e2eb61d996fd21ac9eccb
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Tue Jun 16 17:48:30 2020 +0200

    JAMES-3177 extraction of method handling events
---
 .../imap/processor/base/SelectedMailboxImpl.java   | 108 ++++++++++++---------
 1 file changed, 61 insertions(+), 47 deletions(-)

diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
index 6600b84..f7180a2 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
@@ -366,60 +366,74 @@ public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener {
             if (mailboxEvent instanceof MessageEvent) {
                 final MessageEvent messageEvent = (MessageEvent) mailboxEvent;
                 if (messageEvent instanceof Added) {
-                    sizeChanged = true;
                     final Collection<MessageUid> uids = ((Added) mailboxEvent).getUids();
-                    SelectedMailbox sm = session.getSelected();
-                    for (MessageUid uid : uids) {
-                        uidMsnConverter.addUid(uid);
-                        if (sm != null) {
-                            sm.addRecent(uid);
-                        }
-                    }
+                    handleAddition(uids);
                 } else if (messageEvent instanceof FlagsUpdated) {
                     FlagsUpdated updated = (FlagsUpdated) messageEvent;
-                    List<UpdatedFlags> uFlags = updated.getUpdatedFlags();
-                    if (sessionId != eventSessionId || !silentFlagChanges) {
-   
-                        for (UpdatedFlags u : uFlags) {
-                            if (interestingFlags(u)) {
-                                flagUpdateUids.add(u.getUid());
-                            }
-                        }
-                    }
-   
-                    SelectedMailbox sm = session.getSelected();
-                    if (sm != null) {
-                        // We need to add the UID of the message to the recent
-                        // list if we receive an flag update which contains a
-                        // \RECENT flag
-                        // See IMAP-287
-                        List<UpdatedFlags> uflags = updated.getUpdatedFlags();
-                        for (UpdatedFlags u : uflags) {
-                            Iterator<Flag> flags = u.systemFlagIterator();
-   
-                            while (flags.hasNext()) {
-                                if (Flag.RECENT.equals(flags.next())) {
-                                    MailboxId id = sm.getMailboxId();
-                                    if (id != null && id.equals(mailboxEvent.getMailboxId())) {
-                                        sm.addRecent(u.getUid());
-                                    }
-                                }
-                            }
-   
-   
-                        }
-                    }
-
-                    applicableFlags = updateApplicableFlags(applicableFlags, (FlagsUpdated) messageEvent);
-
+                    handleFlagsUpdates(mailboxEvent, eventSessionId, (FlagsUpdated) messageEvent, updated);
                 } else if (messageEvent instanceof Expunged) {
-                    expungedUids.addAll(messageEvent.getUids());
-                    
+                    handleMailboxExpunge(messageEvent);
                 }
             } else if (mailboxEvent instanceof MailboxDeletion) {
-                if (eventSessionId != sessionId) {
-                    isDeletedByOtherSession = true;
+                handleMailboxDeletion(eventSessionId);
+            }
+        }
+    }
+
+    private void handleMailboxDeletion(MailboxSession.SessionId eventSessionId) {
+        if (eventSessionId != sessionId) {
+            isDeletedByOtherSession = true;
+        }
+    }
+
+    private void handleMailboxExpunge(MessageEvent messageEvent) {
+        expungedUids.addAll(messageEvent.getUids());
+    }
+
+    private void handleFlagsUpdates(MailboxEvent mailboxEvent, MailboxSession.SessionId eventSessionId, FlagsUpdated messageEvent, FlagsUpdated updated) {
+        List<UpdatedFlags> uFlags = updated.getUpdatedFlags();
+        if (sessionId != eventSessionId || !silentFlagChanges) {
+
+            for (UpdatedFlags u : uFlags) {
+                if (interestingFlags(u)) {
+                    flagUpdateUids.add(u.getUid());
+                }
+            }
+        }
+
+        SelectedMailbox sm = session.getSelected();
+        if (sm != null) {
+            // We need to add the UID of the message to the recent
+            // list if we receive an flag update which contains a
+            // \RECENT flag
+            // See IMAP-287
+            List<UpdatedFlags> uflags = updated.getUpdatedFlags();
+            for (UpdatedFlags u : uflags) {
+                Iterator<Flag> flags = u.systemFlagIterator();
+
+                while (flags.hasNext()) {
+                    if (Flag.RECENT.equals(flags.next())) {
+                        MailboxId id = sm.getMailboxId();
+                        if (id != null && id.equals(mailboxEvent.getMailboxId())) {
+                            sm.addRecent(u.getUid());
+                        }
+                    }
                 }
+
+
+            }
+        }
+
+        applicableFlags = updateApplicableFlags(applicableFlags, messageEvent);
+    }
+
+    private void handleAddition(Collection<MessageUid> uids) {
+        sizeChanged = true;
+        SelectedMailbox sm = session.getSelected();
+        for (MessageUid uid : uids) {
+            uidMsnConverter.addUid(uid);
+            if (sm != null) {
+                sm.addRecent(uid);
             }
         }
     }


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