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 2020/05/07 02:12:45 UTC

[james-project] 21/22: JAMES-3148 Readability enhencements: method rename and extraction

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 48daa66b16c1e62fd7cb4b2d3fb584dd9fdd787f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Apr 17 14:43:07 2020 +0700

    JAMES-3148 Readability enhencements: method rename and extraction
---
 .../mailbox/cassandra/DeleteMessageListener.java   | 46 +++++++++++++---------
 1 file changed, 27 insertions(+), 19 deletions(-)

diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
index ce1a3ce..53b1d2e 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
@@ -123,12 +123,7 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen
         if (event instanceof Expunged) {
             Expunged expunged = (Expunged) event;
 
-            Flux.fromIterable(expunged.getExpunged()
-                .values())
-                .map(MessageMetaData::getMessageId)
-                .map(CassandraMessageId.class::cast)
-                .concatMap(this::handleDeletion)
-                .then()
+            handleMessageDeletion(expunged)
                 .block();
         }
         if (event instanceof MailboxDeletion) {
@@ -136,28 +131,41 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen
 
             CassandraId mailboxId = (CassandraId) mailboxDeletion.getMailboxId();
 
-            messageIdDAO.retrieveMessages(mailboxId, MessageRange.all())
-                .map(ComposedMessageIdWithMetaData::getComposedMessageId)
-                .concatMap(metadata -> handleDeletion((CassandraMessageId) metadata.getMessageId(), mailboxId)
-                    .then(imapUidDAO.delete((CassandraMessageId) metadata.getMessageId(), mailboxId))
-                    .then(messageIdDAO.delete(mailboxId, metadata.getUid())))
-                .then(deleteAcl(mailboxId))
-                .then(applicableFlagDAO.delete(mailboxId))
-                .then(firstUnseenDAO.removeAll(mailboxId))
-                .then(deletedMessageDAO.removeAll(mailboxId))
-                .then(counterDAO.delete(mailboxId))
-                .then(recentsDAO.delete(mailboxId))
+            handleMailboxDeletion(mailboxId)
                 .block();
         }
     }
 
+    private Mono<Void> handleMailboxDeletion(CassandraId mailboxId) {
+        return messageIdDAO.retrieveMessages(mailboxId, MessageRange.all())
+            .map(ComposedMessageIdWithMetaData::getComposedMessageId)
+            .concatMap(metadata -> handleMessageDeletionAsPartOfMailboxDeletion((CassandraMessageId) metadata.getMessageId(), mailboxId)
+                .then(imapUidDAO.delete((CassandraMessageId) metadata.getMessageId(), mailboxId))
+                .then(messageIdDAO.delete(mailboxId, metadata.getUid())))
+            .then(deleteAcl(mailboxId))
+            .then(applicableFlagDAO.delete(mailboxId))
+            .then(firstUnseenDAO.removeAll(mailboxId))
+            .then(deletedMessageDAO.removeAll(mailboxId))
+            .then(counterDAO.delete(mailboxId))
+            .then(recentsDAO.delete(mailboxId));
+    }
+
+    private Mono<Void> handleMessageDeletion(Expunged expunged) {
+        return Flux.fromIterable(expunged.getExpunged()
+            .values())
+            .map(MessageMetaData::getMessageId)
+            .map(CassandraMessageId.class::cast)
+            .concatMap(this::handleMessageDeletion)
+            .then();
+    }
+
     private Mono<Void> deleteAcl(CassandraId mailboxId) {
         return aclMapper.getACL(mailboxId)
             .flatMap(acl -> rightsDAO.update(mailboxId, ACLDiff.computeDiff(acl, MailboxACL.EMPTY)))
             .then(aclMapper.delete(mailboxId));
     }
 
-    private Mono<Void> handleDeletion(CassandraMessageId messageId) {
+    private Mono<Void> handleMessageDeletion(CassandraMessageId messageId) {
         return Mono.just(messageId)
             .filterWhen(this::isReferenced)
             .flatMap(id -> readMessage(id)
@@ -166,7 +174,7 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen
                 .then(messageDAO.delete(messageId)));
     }
 
-    private Mono<Void> handleDeletion(CassandraMessageId messageId, CassandraId excludedId) {
+    private Mono<Void> handleMessageDeletionAsPartOfMailboxDeletion(CassandraMessageId messageId, CassandraId excludedId) {
         return Mono.just(messageId)
             .filterWhen(id -> isReferenced(id, excludedId))
             .flatMap(id -> readMessage(id)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org