MAILET-124 And should use recursion
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d1b0b8d8 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d1b0b8d8 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d1b0b8d8 Branch: refs/heads/master Commit: d1b0b8d84cca847da7046291d522b9cb06a7a0f3 Parents: c8648a1 Author: Benoit Tellier <btell...@linagora.com> Authored: Thu Sep 8 14:58:46 2016 +0200 Committer: Benoit Tellier <btell...@linagora.com> Committed: Thu Sep 15 12:06:37 2016 +0200 ---------------------------------------------------------------------- .../apache/james/mailetcontainer/impl/matchers/And.java | 12 ++++-------- .../james/mailetcontainer/impl/matchers/AndTest.java | 6 +++--- 2 files changed, 7 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/d1b0b8d8/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java index 9738495..f556a73 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java @@ -50,19 +50,15 @@ public class And extends GenericCompositeMatcher { return computeIntersection(individualMatchedResults); } - private Collection<MailAddress> computeIntersection(List<Set<MailAddress>> individualMatchedResults) { + private Set<MailAddress> computeIntersection(List<Set<MailAddress>> individualMatchedResults) { if (individualMatchedResults.size() == 0) { - return null; + return ImmutableSet.of(); } if (individualMatchedResults.size() == 1) { return individualMatchedResults.get(0); } - Set<MailAddress> temporaryResult = ImmutableSet.copyOf(individualMatchedResults.get(0)); - List<Set<MailAddress>> followingResults = individualMatchedResults.subList(1, individualMatchedResults.size()); - for(Set<MailAddress> matchedAddresses: followingResults) { - temporaryResult = Sets.intersection(temporaryResult, matchedAddresses); - } - return temporaryResult; + return Sets.intersection(individualMatchedResults.get(0), + computeIntersection(individualMatchedResults.subList(1, individualMatchedResults.size()))); } private List<Set<MailAddress>> performMatchOnMatchers(Mail mail) throws MessagingException { http://git-wip-us.apache.org/repos/asf/james-project/blob/d1b0b8d8/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java index 1ec5d76..490b248 100644 --- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java +++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java @@ -53,7 +53,7 @@ public class AndTest { @Test public void shouldNotMatchWhenNoChild() throws Exception { - assertThat(testee.match(mail)).isNull(); + assertThat(testee.match(mail)).isEmpty(); } @Test @@ -84,7 +84,7 @@ public class AndTest { testee.add(matcher1); testee.add(matcher2); - assertThat(testee.match(mail)).isNull(); + assertThat(testee.match(mail)).isEmpty(); } @Test @@ -95,6 +95,6 @@ public class AndTest { testee.add(matcher1); testee.add(matcher2); - assertThat(testee.match(mail)).isNull(); + assertThat(testee.match(mail)).isEmpty(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org