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 <[email protected]>
Authored: Wed Dec 19 13:52:52 2018 +0700
Committer: Benoit Tellier <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to