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]"));
     }
 
 }

Reply via email to