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:44 UTC
[25/47] james-project git commit: MAILBOX-364 EventFactory should
expose a builder for Expunged event
MAILBOX-364 EventFactory should expose a builder for Expunged 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/2c46d620
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2c46d620
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2c46d620
Branch: refs/heads/master
Commit: 2c46d620f1687b4ec7d72a0c137e384eac1f3038
Parents: e829c8e
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Dec 19 13:35:05 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 8 14:40:28 2019 +0700
----------------------------------------------------------------------
.../james/mailbox/store/event/EventFactory.java | 38 ++++++++++++++------
.../store/event/MailboxEventDispatcher.java | 6 +++-
2 files changed, 33 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/2c46d620/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 cd8a38c..0205560 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
@@ -20,7 +20,6 @@
package org.apache.james.mailbox.store.event;
import java.util.Collection;
-import java.util.Map;
import org.apache.james.core.User;
import org.apache.james.core.quota.QuotaCount;
@@ -43,6 +42,7 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSortedMap;
public class EventFactory {
public abstract static class MailboxEventBuilder<T extends MailboxEventBuilder> {
@@ -124,6 +124,12 @@ public class EventFactory {
this.metaData.addAll(metaData);
return backReference();
}
+
+ protected ImmutableSortedMap<MessageUid, MessageMetaData> metaDataAsMap() {
+ return metaData.build()
+ .stream()
+ .collect(Guavate.toImmutableSortedMap(MessageMetaData::getUid));
+ }
}
public static class AddedBuilder extends MessageMetaDataEventBuilder<AddedBuilder> {
@@ -140,9 +146,25 @@ public class EventFactory {
user,
path,
mailboxId,
- metaData.build()
- .stream()
- .collect(Guavate.toImmutableSortedMap(MessageMetaData::getUid)));
+ metaDataAsMap());
+ }
+ }
+
+ public static class ExpungedBuilder extends MessageMetaDataEventBuilder<ExpungedBuilder> {
+ @Override
+ protected ExpungedBuilder backReference() {
+ return this;
+ }
+
+ public MailboxListener.Expunged build() {
+ mailboxEventChecks();
+
+ return new MailboxListener.Expunged(
+ sessionId,
+ user,
+ path,
+ mailboxId,
+ metaDataAsMap());
}
}
@@ -229,12 +251,8 @@ public class EventFactory {
return new AddedBuilder();
}
- public MailboxListener.Expunged expunged(MailboxSession session, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
- return expunged(session.getSessionId(), session.getUser(), uids, mailbox);
- }
-
- public MailboxListener.Expunged expunged(MailboxSession.SessionId sessionId, User user, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
- return new MailboxListener.Expunged(sessionId, user, mailbox.generateAssociatedPath(), mailbox.getMailboxId(), uids);
+ public ExpungedBuilder expunged() {
+ return new ExpungedBuilder();
}
public FlagsUpdatedBuilder flagsUpdated() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/2c46d620/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 6684b8a..122394f 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
@@ -114,7 +114,11 @@ public class MailboxEventDispatcher {
* @param mailbox The mailbox
*/
public void expunged(MailboxSession session, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
- event(eventFactory.expunged(session, uids, mailbox));
+ event(eventFactory.expunged()
+ .mailbox(mailbox)
+ .mailboxSession(session)
+ .addMetaData(uids.values())
+ .build());
}
public void expunged(MailboxSession session, MessageMetaData messageMetaData, Mailbox mailbox) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org