MAILBOX-354 Selected mailbox should expose the MailboxId

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b853de8a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b853de8a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b853de8a

Branch: refs/heads/master
Commit: b853de8a5be321ed3ffe986dd75161557eaaada3
Parents: f454266
Author: Benoit Tellier <btell...@linagora.com>
Authored: Fri Nov 30 10:32:48 2018 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Tue Dec 4 15:47:32 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/imap/api/process/SelectedMailbox.java  | 9 +++++++++
 .../james/imap/processor/base/SelectedMailboxImpl.java      | 8 ++++++++
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b853de8a/protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
----------------------------------------------------------------------
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
index 710eba5..4157de8 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
@@ -21,9 +21,11 @@ package org.apache.james.imap.api.process;
 
 import java.util.Collection;
 import java.util.Optional;
+
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 
 /**
@@ -90,6 +92,13 @@ public interface SelectedMailbox {
     MailboxPath getPath();
 
     /**
+     * Return the mailboxId of the selected Mailbox.
+     *
+     * This is beneficial as the MailboxId is immutable.
+     */
+    MailboxId getMailboxId();
+
+    /**
      * Is the given uid recent ?
      * 
      * @return true if the given uid is recent

http://git-wip-us.apache.org/repos/asf/james-project/blob/b853de8a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
----------------------------------------------------------------------
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 0579c61..9402ba1 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
@@ -41,6 +41,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.mailbox.model.UpdatedFlags;
@@ -61,6 +62,7 @@ public class SelectedMailboxImpl implements SelectedMailbox, 
MailboxListener {
 
     private final MailboxManager mailboxManager;
 
+    private final MailboxId mailboxId;
     private MailboxPath path;
 
     private final ImapSession session;
@@ -94,6 +96,7 @@ public class SelectedMailboxImpl implements SelectedMailbox, 
MailboxListener {
         mailboxManager.addListener(path, this, mailboxSession);
 
         MessageManager messageManager = mailboxManager.getMailbox(path, 
mailboxSession);
+        mailboxId = messageManager.getId();
         applicableFlags = messageManager.getApplicableFlags(mailboxSession);
         uidMsnConverter.addAll(ImmutableList.copyOf(
             messageManager.search(new SearchQuery(SearchQuery.all()), 
mailboxSession)));
@@ -162,6 +165,11 @@ public class SelectedMailboxImpl implements 
SelectedMailbox, MailboxListener {
         return path;
     }
 
+    @Override
+    public MailboxId getMailboxId() {
+        return mailboxId;
+    }
+
     private void checkExpungedRecents() {
         for (MessageUid uid : expungedUids()) {
             removeRecent(uid);


---------------------------------------------------------------------
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