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