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 2019/11/14 02:09:23 UTC

[james-project] 06/32: [Refactoring] StatusProcessor: Extract response computation

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 1e8480bb0903abca53c57c5839e62e59ab13e0e2
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 13 11:28:00 2019 +0700

    [Refactoring] StatusProcessor: Extract response computation
---
 .../james/imap/processor/StatusProcessor.java      | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
index b0bed8f..84b9a7b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
@@ -64,29 +64,31 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
             MessageManager mailbox = mailboxManager.getMailbox(mailboxPath, ImapSessionUtils.getMailboxSession(session));
             MessageManager.MetaData.FetchGroup fetchGroup = computeFetchGroup(statusDataItems);
             MessageManager.MetaData metaData = mailbox.getMetaData(false, mailboxSession, fetchGroup);
+            MailboxStatusResponse response = computeStatusResponse(request, statusDataItems, metaData);
 
-            Long messages = messages(statusDataItems, metaData);
-            Long recent = recent(statusDataItems, metaData);
-            MessageUid uidNext = uidNext(statusDataItems, metaData);
-            Long uidValidity = uidValidity(statusDataItems, metaData);
-            Long unseen = unseen(statusDataItems, metaData);
-            Long highestModSeq = highestModSeq(statusDataItems, metaData);
-            
             // Enable CONDSTORE as this is a CONDSTORE enabling command
-            if (highestModSeq != null) {
+            if (response.getHighestModSeq() != null) {
                 condstoreEnablingCommand(session, responder, metaData, false); 
             }
-            MailboxStatusResponse response = new MailboxStatusResponse(messages, recent, uidNext, highestModSeq, uidValidity, unseen, request.getMailboxName());
             responder.respond(response);
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);
-
         } catch (MailboxException e) {
             LOGGER.error("Status failed for mailbox {}", mailboxPath, e);
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
         }
     }
 
+    private MailboxStatusResponse computeStatusResponse(StatusRequest request, StatusDataItems statusDataItems, MessageManager.MetaData metaData) {
+        Long messages = messages(statusDataItems, metaData);
+        Long recent = recent(statusDataItems, metaData);
+        MessageUid uidNext = uidNext(statusDataItems, metaData);
+        Long uidValidity = uidValidity(statusDataItems, metaData);
+        Long unseen = unseen(statusDataItems, metaData);
+        Long highestModSeq = highestModSeq(statusDataItems, metaData);
+        return new MailboxStatusResponse(messages, recent, uidNext, highestModSeq, uidValidity, unseen, request.getMailboxName());
+    }
+
     private MessageManager.MetaData.FetchGroup computeFetchGroup(StatusDataItems statusDataItems) {
         if (statusDataItems.isUnseen()) {
             return MessageManager.MetaData.FetchGroup.UNSEEN_COUNT;
@@ -111,7 +113,6 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
         }
     }
 
-
     private Long highestModSeq(StatusDataItems statusDataItems, MessageManager.MetaData metaData) {
         if (statusDataItems.isHighestModSeq()) {
             return metaData.getHighestModSeq();
@@ -119,7 +120,6 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
             return null;
         }
     }
-
     
     private MessageUid uidNext(StatusDataItems statusDataItems, MessageManager.MetaData metaData) {
         if (statusDataItems.isUidNext()) {


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