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