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/01/08 08:00:47 UTC

[28/47] james-project git commit: MAILBOX-364 EventFactory should expose a builder for MailboxRenamed event

MAILBOX-364 EventFactory should expose a builder for MailboxRenamed event


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

Branch: refs/heads/master
Commit: b5608ad26ee9b306e5d9ee97e7aa5d15bf11f529
Parents: 098dbe4
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Dec 19 13:52:52 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 8 14:40:28 2019 +0700

----------------------------------------------------------------------
 .../james/mailbox/store/event/EventFactory.java | 39 +++++++++++++++++---
 .../store/event/MailboxEventDispatcher.java     |  7 +++-
 2 files changed, 39 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b5608ad2/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index de9ed6e..cc8a2f6 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -242,6 +242,37 @@ public class EventFactory {
         }
     }
 
+    public static class MailboxRenamedBuilder extends MailboxEventBuilder<MailboxRenamedBuilder> {
+        private MailboxPath newPath;
+
+        @Override
+        protected MailboxRenamedBuilder backReference() {
+            return this;
+        }
+
+        public MailboxRenamedBuilder newPath(MailboxPath newPath) {
+            this.newPath = newPath;
+            return this;
+        }
+
+        public MailboxRenamedBuilder oldPath(MailboxPath oldPath) {
+            this.path = oldPath;
+            return this;
+        }
+
+        public MailboxListener.MailboxRenamed build() {
+            mailboxEventChecks();
+            Preconditions.checkState(path != null, "Field `newPath` is compulsory");
+
+            return new MailboxListener.MailboxRenamed(
+                sessionId,
+                user,
+                path,
+                mailboxId,
+                newPath);
+        }
+    }
+
     public static class FlagsUpdatedBuilder extends MailboxEventBuilder<FlagsUpdatedBuilder> {
         private final ImmutableList.Builder<UpdatedFlags> updatedFlags;
 
@@ -285,12 +316,8 @@ public class EventFactory {
         return new FlagsUpdatedBuilder();
     }
 
-    public MailboxListener.MailboxRenamed mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) {
-        return mailboxRenamed(session.getSessionId(), session.getUser(), from, to);
-    }
-
-    public MailboxListener.MailboxRenamed mailboxRenamed(MailboxSession.SessionId sessionId, User user, MailboxPath from, Mailbox to) {
-        return new MailboxListener.MailboxRenamed(sessionId, user, from, to.getMailboxId(), to.generateAssociatedPath());
+    public MailboxRenamedBuilder mailboxRenamed() {
+        return new MailboxRenamedBuilder();
     }
 
     public MailboxDeletionBuilder mailboxDeleted() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b5608ad2/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index da360d5..e7a8a4f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -149,7 +149,12 @@ public class MailboxEventDispatcher {
      * MailboxListener will get triggered then
      */
     public void mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) {
-        event(eventFactory.mailboxRenamed(session, from, to));
+        event(eventFactory.mailboxRenamed()
+            .mailboxSession(session)
+            .mailboxId(to.getMailboxId())
+            .oldPath(from)
+            .newPath(to.generateAssociatedPath())
+            .build());
     }
 
     /**


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