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