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/11/14 02:09:39 UTC

[james-project] 22/32: [Refactoring] Allow a mailboxQuery to fluently match mailboxes

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 9a0ae791225d81000eb28846c08afa111ec52318
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Nov 12 14:33:34 2019 +0700

    [Refactoring] Allow a mailboxQuery to fluently match mailboxes
---
 .../java/org/apache/james/mailbox/model/search/MailboxQuery.java     | 5 +++++
 .../java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java     | 2 +-
 .../org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java  | 2 +-
 .../apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java    | 4 ++--
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
index 52afd64..f4ed134 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
@@ -24,6 +24,7 @@ import java.util.Optional;
 
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.model.Mailbox;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 
@@ -179,6 +180,10 @@ public class MailboxQuery {
             && isExpressionMatch(mailboxPath.getName());
     }
 
+    public boolean matches(Mailbox mailbox) {
+        return isPathMatch(mailbox.generateAssociatedPath());
+    }
+
     public UserBound asUserBound() {
         Preconditions.checkState(namespace.isPresent(), "This MailboxQuery is not user bound as namespace is missing");
         Preconditions.checkState(user.isPresent(), "This MailboxQuery is not user bound as user is missing");
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
index 8b69d39..43a9295 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
@@ -198,7 +198,7 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
                 .getResultList()
                 .stream()
                 .map(JPAMailbox::toMailbox)
-                .filter(mailbox -> query.isPathMatch(mailbox.generateAssociatedPath()))
+                .filter(query::matches)
                 .collect(Guavate.toImmutableList());
         } catch (PersistenceException e) {
             throw new MailboxException("Search of mailbox " + query + " failed", e);
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
index 843fe95..fe75ff1 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
@@ -143,7 +143,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail
             mailboxList.add(0, mailbox);
         }
         return mailboxList.stream()
-            .filter(mailbox -> query.isPathMatch(mailbox.generateAssociatedPath()))
+            .filter(query::matches)
             .collect(Guavate.toImmutableList());
     }
 
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
index d1d28a0..3c9fceb 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
@@ -82,10 +82,10 @@ public class InMemoryMailboxMapper implements MailboxMapper {
     }
 
     @Override
-    public List<Mailbox> findMailboxWithPathLike(MailboxQuery.UserBound query) throws MailboxException {
+    public List<Mailbox> findMailboxWithPathLike(MailboxQuery.UserBound query) {
         return mailboxesByPath.values()
             .stream()
-            .filter(mailbox -> query.isPathMatch(mailbox.generateAssociatedPath()))
+            .filter(query::matches)
             .map(Mailbox::new)
             .collect(Guavate.toImmutableList());
     }


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