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/02/25 10:26:35 UTC
[james-project] 07/08: MAILBOX-381 Add DeletedMessage POJO
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit d48deab6a2ed462ccc9d5c7701a3fd1417b103d8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Feb 22 16:32:27 2019 +0700
MAILBOX-381 Add DeletedMessage POJO
---
.../org/apache/james/vault/DeletedMessage.java | 33 ++++++++++++++++++----
.../apache/james/vault/DeletedMessageFixture.java | 4 +--
2 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java
index 0e3a104..ca45e01 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java
@@ -31,7 +31,11 @@ import org.apache.james.core.MaybeSender;
import org.apache.james.core.User;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.vault.DeletedMessage.Builder.FinalStage;
+import org.apache.james.vault.DeletedMessage.Builder.Steps.RequireMetadata;
+import org.apache.james.vault.DeletedMessage.Builder.Steps.RequirePayload;
+import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
public class DeletedMessage {
@@ -97,6 +101,18 @@ public class DeletedMessage {
T content(Supplier<InputStream> content);
}
+ interface Steps {
+ interface RequireMailboxContext<T> extends RequireMessageId<RequireOriginMailboxes<RequireUser<T>>> {}
+
+ interface RequireEnvelope<T> extends RequireSender<RequireRecipients<T>> {}
+
+ interface RequireDates<T> extends RequireDeliveryDate<RequireDeletionDate<T>> {}
+
+ interface RequireMetadata<T> extends RequireMailboxContext<RequireDates<RequireEnvelope<T>>> {}
+
+ interface RequirePayload<T> extends RequireContent<RequireHasAttachment<T>> {}
+ }
+
public static class FinalStage {
private final MessageId messageId;
private final List<MailboxId> originMailboxes;
@@ -136,12 +152,9 @@ public class DeletedMessage {
}
}
- public static Builder.RequireMessageId<Builder.RequireOriginMailboxes<Builder.RequireUser<Builder.RequireDeliveryDate<
- Builder.RequireDeletionDate<Builder.RequireContent<Builder.RequireSender<Builder.RequireRecipients<
- Builder.RequireHasAttachment<Builder.FinalStage>>>>>>>>> builder() {
-
- return messageId -> originMailboxes -> user -> deliveryDate -> deletionDate -> content -> sender -> recipients ->
- hasAttachment -> new Builder.FinalStage(messageId, originMailboxes, user, deliveryDate, deletionDate, sender,
+ public static RequireMetadata<RequirePayload<FinalStage>> builder() {
+ return messageId -> originMailboxes -> user -> deliveryDate -> deletionDate -> sender -> recipients -> content -> hasAttachment ->
+ new Builder.FinalStage(messageId, originMailboxes, user, deliveryDate, deletionDate, sender,
recipients, hasAttachment, content);
}
@@ -236,4 +249,12 @@ public class DeletedMessage {
return Objects.hash(messageId, originMailboxes, owner, content, deliveryDate, deletionDate, sender, recipients,
subject, hasAttachment);
}
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("owner", owner)
+ .add("messageId", messageId)
+ .toString();
+ }
}
diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageFixture.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageFixture.java
index f74d7c1..c2fb8c2 100644
--- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageFixture.java
+++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageFixture.java
@@ -52,9 +52,9 @@ public interface DeletedMessageFixture {
.user(USER)
.deliveryDate(DELIVERY_DATE)
.deletionDate(DELETION_DATE)
- .content(() -> new ByteArrayInputStream(CONTENT))
.sender(MaybeSender.of(SENDER))
.recipients(RECIPIENT1, RECIPIENT2)
+ .content(() -> new ByteArrayInputStream(CONTENT))
.hasAttachment(false)
.build();
Supplier<DeletedMessage.Builder.FinalStage> FINAL_STAGE = () -> DeletedMessage.builder()
@@ -63,9 +63,9 @@ public interface DeletedMessageFixture {
.user(USER)
.deliveryDate(DELIVERY_DATE)
.deletionDate(DELETION_DATE)
- .content(() -> new ByteArrayInputStream(CONTENT))
.sender(MaybeSender.of(SENDER))
.recipients(RECIPIENT1, RECIPIENT2)
+ .content(() -> new ByteArrayInputStream(CONTENT))
.hasAttachment(false);
DeletedMessage DELETED_MESSAGE_WITH_SUBJECT = FINAL_STAGE.get()
.subject(SUBJECT)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org