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 2018/12/14 10:34:18 UTC
[02/18] james-project git commit: MAILBOX-358 Introduce POJO for
MailboxEvent implementation in MailboxListener
MAILBOX-358 Introduce POJO for MailboxEvent implementation in MailboxListener
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d01178fd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d01178fd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d01178fd
Branch: refs/heads/master
Commit: d01178fddb4f5a737f410131eb50077990cf8ece
Parents: 3b7cf2c
Author: datph <dp...@linagora.com>
Authored: Wed Dec 12 16:23:13 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Dec 14 17:08:46 2018 +0700
----------------------------------------------------------------------
.../apache/james/mailbox/MailboxListener.java | 67 ++++++++++++++++----
1 file changed, 54 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d01178fd/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
index 906532e..c4d2521 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
@@ -22,7 +22,9 @@ package org.apache.james.mailbox;
import java.io.Serializable;
import java.time.Instant;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
+import java.util.SortedMap;
import org.apache.james.core.User;
import org.apache.james.core.quota.QuotaCount;
@@ -35,6 +37,9 @@ import org.apache.james.mailbox.model.Quota;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.model.UpdatedFlags;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
/**
* Listens to <code>Mailbox</code> events.<br>
@@ -240,14 +245,17 @@ public interface MailboxListener {
/**
* Indicates that a mailbox has been renamed.
*/
- abstract class MailboxRenamed extends MailboxEvent {
+ class MailboxRenamed extends MailboxEvent {
/**
*
*/
private static final long serialVersionUID = 1L;
- public MailboxRenamed(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId) {
+ private final MailboxPath newPath;
+
+ public MailboxRenamed(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, MailboxPath newPath) {
super(sessionId, user, path, mailboxId);
+ this.newPath = newPath;
}
/**
@@ -255,7 +263,9 @@ public interface MailboxListener {
*
* @return name, not null
*/
- public abstract MailboxPath getNewPath();
+ public MailboxPath getNewPath() {
+ return newPath;
+ }
}
@@ -314,55 +324,81 @@ public interface MailboxListener {
}
- abstract class Expunged extends MetaDataHoldingEvent {
+ class Expunged extends MetaDataHoldingEvent {
/**
*
*/
private static final long serialVersionUID = 1L;
- public Expunged(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId) {
+ private final Map<MessageUid, MessageMetaData> uids;
+
+ public Expunged(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, Map<MessageUid, MessageMetaData> uids) {
super(sessionId, user, path, mailboxId);
+ this.uids = uids;
+ }
+
+ @Override
+ public List<MessageUid> getUids() {
+ return ImmutableList.copyOf(uids.keySet());
}
/**
* Return the flags which were set for the added message
*
* @return flags
+ *
*/
@Override
- public abstract MessageMetaData getMetaData(MessageUid uid);
+ public MessageMetaData getMetaData(MessageUid uid) {
+ return uids.get(uid);
+ }
}
/**
* A mailbox event related to updated flags
*/
- abstract class FlagsUpdated extends MessageEvent {
+ class FlagsUpdated extends MessageEvent {
/**
*
*/
private static final long serialVersionUID = 1L;
- public FlagsUpdated(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId) {
+ private final List<MessageUid> uids;
+ private final List<UpdatedFlags> uFlags;
+
+ public FlagsUpdated(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, List<MessageUid> uids, List<UpdatedFlags> uFlags) {
super(sessionId, user, path, mailboxId);
+ this.uids = ImmutableList.copyOf(uids);
+ this.uFlags = ImmutableList.copyOf(uFlags);
}
- public abstract List<UpdatedFlags> getUpdatedFlags();
+ @Override
+ public List<MessageUid> getUids() {
+ return uids;
+ }
+
+ public List<UpdatedFlags> getUpdatedFlags() {
+ return uFlags;
+ }
}
/**
* A mailbox event related to added message
*/
- abstract class Added extends MetaDataHoldingEvent {
+ class Added extends MetaDataHoldingEvent {
/**
*
*/
private static final long serialVersionUID = 1L;
- public Added(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId) {
+ private final Map<MessageUid, MessageMetaData> added;
+
+ public Added(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, SortedMap<MessageUid, MessageMetaData> uids) {
super(sessionId, user, path, mailboxId);
+ this.added = ImmutableMap.copyOf(uids);
}
/**
@@ -370,9 +406,14 @@ public interface MailboxListener {
*
* @return flags
*/
+ public MessageMetaData getMetaData(MessageUid uid) {
+ return added.get(uid);
+ }
+
@Override
- public abstract MessageMetaData getMetaData(MessageUid uid);
-
+ public List<MessageUid> getUids() {
+ return ImmutableList.copyOf(added.keySet());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org