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/28 10:17:18 UTC

[james-project] 01/04: MAILBOX-381 Move Query to search package

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 dae0bc7fb664c5b99fa7bef46b85777dfaf429f3
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Tue Feb 26 10:59:22 2019 +0700

    MAILBOX-381 Move Query to search package
---
 .../java/org/apache/james/vault/DeletedMessageVault.java  |  1 +
 .../java/org/apache/james/vault/{ => search}/Query.java   | 15 ++++++++++-----
 .../apache/james/vault/DeletedMessageVaultContract.java   |  2 +-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVault.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVault.java
index 30efb1b..a6bc9bb 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVault.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVault.java
@@ -21,6 +21,7 @@ package org.apache.james.vault;
 
 import org.apache.james.core.User;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.vault.search.Query;
 import org.reactivestreams.Publisher;
 
 public interface DeletedMessageVault {
diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/Query.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Query.java
similarity index 78%
rename from mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/Query.java
rename to mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Query.java
index 4b7611c..c7b1f9b 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/Query.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Query.java
@@ -17,17 +17,20 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.vault;
+package org.apache.james.vault.search;
 
 import java.util.List;
+import java.util.function.Predicate;
+
+import org.apache.james.vault.DeletedMessage;
 
 import com.google.common.collect.ImmutableList;
 
 public class Query {
     public static final Query ALL = new Query(ImmutableList.of());
 
-    interface Criterion {
-
+    public static Query of(Criterion... criteria) {
+        return new Query(ImmutableList.copyOf(criteria));
     }
 
     private final List<Criterion> criteria;
@@ -36,7 +39,9 @@ public class Query {
         this.criteria = criteria;
     }
 
-    public List<Criterion> getCriteria() {
-        return criteria;
+    public Predicate<DeletedMessage> toPredicate() {
+        return criteria.stream()
+            .map(Criterion::toPredicate)
+            .reduce(any -> true, Predicate::and);
     }
 }
diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultContract.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultContract.java
index 0c57404..c2125f1 100644
--- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultContract.java
+++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultContract.java
@@ -25,7 +25,7 @@ import static org.apache.james.vault.DeletedMessageFixture.DELETED_MESSAGE_GENER
 import static org.apache.james.vault.DeletedMessageFixture.MESSAGE_ID;
 import static org.apache.james.vault.DeletedMessageFixture.USER;
 import static org.apache.james.vault.DeletedMessageFixture.USER_2;
-import static org.apache.james.vault.Query.ALL;
+import static org.apache.james.vault.search.Query.ALL;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 


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