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 <btell...@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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to