MAILBOX-310 Mailbox query refactoring: MailboxSession should not be compulsory 
to build MailboxQuery


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8faf9a6f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8faf9a6f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8faf9a6f

Branch: refs/heads/master
Commit: 8faf9a6fd8ed08fab877cb25aebb0d1c5730e03c
Parents: 07ee106
Author: benwa <btell...@linagora.com>
Authored: Wed Oct 4 09:51:44 2017 +0700
Committer: Matthieu Baechler <matth...@apache.org>
Committed: Thu Oct 5 20:00:38 2017 +0200

----------------------------------------------------------------------
 .../james/mailbox/model/MailboxQuery.java       | 20 +++++++++++++-------
 .../james/mailbox/model/MailboxQueryTest.java   |  2 +-
 2 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8faf9a6f/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
index c6e2ebc..6cbbff2 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
@@ -58,7 +58,7 @@ public final class MailboxQuery {
 
     public static class Builder {
         private String expression;
-        @VisibleForTesting MailboxSession mailboxSession;
+        @VisibleForTesting Optional<Character> pathDelimiter;
         @VisibleForTesting Optional<String> username;
         @VisibleForTesting Optional<String> pathName;
         @VisibleForTesting Optional<String> namespace;
@@ -67,6 +67,7 @@ public final class MailboxQuery {
             this.pathName = Optional.empty();
             this.namespace = Optional.empty();
             this.username = Optional.empty();
+            this.pathDelimiter = Optional.empty();
         }
         
         public Builder base(MailboxPath base) {
@@ -98,15 +99,20 @@ public final class MailboxQuery {
             this.expression = String.valueOf(FREEWILDCARD);
             return this;
         }
-        
+
         public Builder mailboxSession(MailboxSession session) {
-            this.mailboxSession = session;
+            this.pathDelimiter = Optional.of(session.getPathDelimiter());
+            return this;
+        }
+
+        public Builder pathDelimiter(char pathDelimiter) {
+            this.pathDelimiter = Optional.of(pathDelimiter);
             return this;
         }
         
         public MailboxQuery build() {
-            Preconditions.checkState(mailboxSession != null);
-            return new MailboxQuery(namespace, username, pathName, expression, 
mailboxSession);
+            Preconditions.checkState(pathDelimiter.isPresent());
+            return new MailboxQuery(namespace, username, pathName, expression, 
pathDelimiter.get());
         }
     }
 
@@ -128,7 +134,7 @@ public final class MailboxQuery {
      *            path delimiter to use
      */
     @VisibleForTesting MailboxQuery(Optional<String> namespace, 
Optional<String> user, Optional<String> baseName,
-                                    String expression, MailboxSession session) 
{
+                                    String expression, char pathDelimiter) {
         this.namespace = namespace;
         this.user = user;
         this.baseName = baseName;
@@ -137,7 +143,7 @@ public final class MailboxQuery {
         } else {
             this.expression = expression;
         }
-        this.pathDelimiter = session.getPathDelimiter();
+        this.pathDelimiter = pathDelimiter;
         pattern = constructEscapedRegex();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/8faf9a6f/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxQueryTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxQueryTest.java
 
b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxQueryTest.java
index 1c3f697..a266678 100644
--- 
a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxQueryTest.java
+++ 
b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxQueryTest.java
@@ -1710,7 +1710,7 @@ public class MailboxQueryTest {
         // When
         Builder query = MailboxQuery.privateMailboxesBuilder(mailboxSession);
         //Then
-        assertThat(query.mailboxSession.getPathDelimiter()).isEqualTo('#');
+        assertThat(query.pathDelimiter).contains('#');
         assertThat(query.username).contains("little bobby table");
     }
 


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

Reply via email to