This is an automated email from the ASF dual-hosted git repository. cschneider pushed a commit to branch GRANITE-50556 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal-messages.git
commit 827c7167c5de6f92a273f7cb48ebb66bb144a3b9 Author: Christian Schneider <[email protected]> AuthorDate: Tue Mar 19 10:45:49 2024 +0100 GRANITE-50556 - Add toString with with option to abbreviate --- .../journal/messages/PackageMessage.java | 42 +++++++++++++--------- .../journal/messages/package-info.java | 2 +- .../journal/messages/PackageMessageTest.java | 16 ++++++--- 3 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java b/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java index 137ab8d..887fe5d 100644 --- a/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java +++ b/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java @@ -43,6 +43,7 @@ public class PackageMessage { @Builder.Default List<String> deepPaths = new ArrayList<>(); + // No builder default, we want metadata to be null by default Map<String, String> metadata = new HashMap<>(); public enum ReqType { @@ -70,8 +71,12 @@ public class PackageMessage { this.paths = paths; this.deepPaths = deepPaths; } - + public String toString() { + return toString(true); + } + + public String toString(boolean abbreviate) { StringBuilder out = new StringBuilder(); out.append("PackageMessage(pubSlingId="); out.append(pubSlingId); @@ -92,31 +97,36 @@ public class PackageMessage { out.append(pkgBinary.length); } out.append(", paths="); - out.append(abbreviate(paths)); + out.append(printList(paths, abbreviate)); out.append(", deepPaths="); - out.append(abbreviate(deepPaths)); + out.append(printList(deepPaths, abbreviate)); out.append(", metadata="); out.append(metadata); out.append(")"); return out.toString(); } - static String abbreviate(List<String> list) { + static String printList(List<String> list, boolean abbreviate) { if (list == null) { return null; } - Iterator<String> iter = list.iterator(); - StringBuilder abbr = new StringBuilder(); - abbr.append("["); - if (iter.hasNext()) { - abbr.append(iter.next()); - } - if (iter.hasNext()) { - abbr.append(", ... "); - abbr.append(list.size() - 1); - abbr.append(" more"); + if (abbreviate) { + Iterator<String> iter = list.iterator(); + StringBuilder abbr = new StringBuilder(); + abbr.append("["); + if (iter.hasNext()) { + abbr.append(iter.next()); + } + if (iter.hasNext()) { + abbr.append(", ... "); + abbr.append(list.size() - 1); + abbr.append(" more"); + } + abbr.append("]"); + return abbr.toString(); + } else { + return list.toString(); } - abbr.append("]"); - return abbr.toString(); + } } diff --git a/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java b/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java index 992be64..4ab9ba2 100644 --- a/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java +++ b/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java @@ -16,5 +16,5 @@ * specific language governing permissions and limitations * under the License. */ [email protected]("1.4.0") [email protected]("1.5.0") package org.apache.sling.distribution.journal.messages; diff --git a/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java b/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java index 01cc228..bae6c34 100644 --- a/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java +++ b/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java @@ -18,7 +18,7 @@ */ package org.apache.sling.distribution.journal.messages; -import static org.apache.sling.distribution.journal.messages.PackageMessage.abbreviate; +import static org.apache.sling.distribution.journal.messages.PackageMessage.printList; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertNotNull; import static org.hamcrest.MatcherAssert.assertThat; @@ -84,25 +84,31 @@ public class PackageMessageTest { @Test public void testAbbreviateNullPaths() { - assertNull(abbreviate(null)); + assertNull(printList(null, true)); } @Test public void testAbbreviateEmptyPaths() { List<String> empty = Collections.emptyList(); - assertThat(abbreviate(empty), equalTo(empty.toString())); + assertThat(printList(empty, true), equalTo(empty.toString())); } @Test public void testAbbreviateOnePaths() { List<String> one = Collections.singletonList("/a/path"); - assertThat(abbreviate(one), equalTo(one.toString())); + assertThat(printList(one, true), equalTo(one.toString())); } @Test public void testAbbreviateManyPaths() { List<String> one = Arrays.asList("/a/path", "/another/one", "/yet/another/one"); - assertThat(abbreviate(one), equalTo("[/a/path, ... 2 more]")); + assertThat(printList(one, true), equalTo("[/a/path, ... 2 more]")); + } + + @Test + public void testPrintManyPaths() { + List<String> one = Arrays.asList("/a/path", "/another/one", "/yet/another/one"); + assertThat(printList(one, false), equalTo("[/a/path, /another/one, /yet/another/one]")); } }
