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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
