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