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