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]
