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 ro...@apache.org on 2016/07/19 08:04:26 UTC
[4/4] james-project git commit: JAMES-1800 Pretty print filters
JAMES-1800 Pretty print filters
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/635607f2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/635607f2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/635607f2
Branch: refs/heads/master
Commit: 635607f23615b872bc21b7024455e0f524d24e47
Parents: cabe435
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Wed Jul 13 16:39:12 2016 +0200
Committer: Matthieu Baechler <ma...@linagora.com>
Committed: Tue Jul 19 09:58:59 2016 +0200
----------------------------------------------------------------------
.../org/apache/james/jmap/model/Filter.java | 2 +-
.../james/jmap/model/FilterCondition.java | 5 +++++
.../apache/james/jmap/model/FilterOperator.java | 22 +++++++++++++++----
.../james/jmap/model/FilterOperatorTest.java | 23 ++++++++++++++++++++
4 files changed, 47 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/635607f2/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Filter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Filter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Filter.java
index 7509fba..2b8605b 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Filter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Filter.java
@@ -25,5 +25,5 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@JsonDeserialize(using = FilterDeserializer.class)
public interface Filter {
-
+ String prettyPrint(String indentation);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/635607f2/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
index 7185cb0..de5ea81 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterCondition.java
@@ -343,4 +343,9 @@ public class FilterCondition implements Filter {
header.ifPresent(x -> helper.add("header", x));
return helper.toString();
}
+
+ @Override
+ public String prettyPrint(String indentation) {
+ return indentation + toString() + "\n";
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/635607f2/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterOperator.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterOperator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterOperator.java
index f8ba52c..d1534b3 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterOperator.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/FilterOperator.java
@@ -21,6 +21,7 @@ package org.apache.james.jmap.model;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
@@ -114,9 +115,22 @@ public class FilterOperator implements Filter {
@Override
public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("operator", operator)
- .add("conditions", conditions)
- .toString();
+ return prettyPrint("");
+ }
+
+ @Override
+ public String prettyPrint(String indentation) {
+ return indentation
+ + MoreObjects.toStringHelper(getClass())
+ .add("operator", operator)
+ .toString()
+ + "\n"
+ + conditionListToString(indentation + " ");
+ }
+
+ private String conditionListToString(String indentation) {
+ return conditions.stream()
+ .map(condition -> condition.prettyPrint(indentation))
+ .collect(Collectors.joining());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/635607f2/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterOperatorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterOperatorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterOperatorTest.java
index b2b1638..f7646bb 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterOperatorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/FilterOperatorTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.junit.Test;
+import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import nl.jqno.equalsverifier.EqualsVerifier;
@@ -101,4 +102,26 @@ public class FilterOperatorTest {
public void shouldRespectJavaBeanContract() {
EqualsVerifier.forClass(FilterOperator.class).verify();
}
+
+ @Test
+ public void toStringShouldBePretty() {
+ FilterOperator testee =
+ FilterOperator.and(
+ FilterCondition.builder().inMailboxes("12","34").build(),
+ FilterOperator.or(
+ FilterOperator.not(
+ FilterCondition.builder().notInMailboxes("45").build()),
+ FilterCondition.builder().build()));
+
+ String expected = Joiner.on('\n').join(
+ "FilterOperator{operator=AND}",
+ " FilterCondition{inMailboxes=[12, 34]}",
+ " FilterOperator{operator=OR}",
+ " FilterOperator{operator=NOT}",
+ " FilterCondition{notInMailboxes=[45]}",
+ " FilterCondition{}",
+ "");
+ String actual = testee.toString();
+ assertThat(actual).isEqualTo(expected);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org