This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 753bd2958d Marshall module improvements
753bd2958d is described below
commit 753bd2958d4392118f9d345be2ef7a1277e73420
Author: James Bognar <[email protected]>
AuthorDate: Sat Dec 13 08:44:43 2025 -0500
Marshall module improvements
---
.../juneau/commons/collections/FilteredMap.java | 15 +++++
.../juneau/commons/collections/FluentList.java | 15 +++++
.../juneau/commons/collections/FluentMap.java | 15 +++++
.../juneau/commons/collections/FluentSet.java | 15 +++++
.../commons/collections/FilteredMap_Test.java | 68 ++++++++++++++++++++++
.../commons/collections/FluentList_Test.java | 57 ++++++++++++++++++
.../juneau/commons/collections/FluentMap_Test.java | 53 +++++++++++++++++
.../juneau/commons/collections/FluentSet_Test.java | 57 ++++++++++++++++++
8 files changed, 295 insertions(+)
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FilteredMap.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FilteredMap.java
index 0d55c27cb0..026747f1e6 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FilteredMap.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FilteredMap.java
@@ -584,5 +584,20 @@ public class FilteredMap<K,V> extends AbstractMap<K,V> {
return valueType.cast(value);
throw rex("Object of type {0} could not be converted to value
type {1}", cn(value), cn(valueType));
}
+
+ @Override
+ public String toString() {
+ return map.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return map.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return map.hashCode();
+ }
}
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentList.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentList.java
index a286922e82..ccd1687666 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentList.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentList.java
@@ -283,5 +283,20 @@ public class FluentList<E> extends AbstractList<E> {
public <T> T[] toArray(T[] a) {
return list.toArray(a);
}
+
+ @Override
+ public String toString() {
+ return list.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return list.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return list.hashCode();
+ }
}
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentMap.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentMap.java
index 4f69a20f28..e7bad56d2c 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentMap.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentMap.java
@@ -231,5 +231,20 @@ public class FluentMap<K,V> extends AbstractMap<K,V> {
public Collection<V> values() {
return map.values();
}
+
+ @Override
+ public String toString() {
+ return map.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return map.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return map.hashCode();
+ }
}
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentSet.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentSet.java
index 5fc6a6de74..18438e7825 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentSet.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/FluentSet.java
@@ -237,5 +237,20 @@ public class FluentSet<E> extends AbstractSet<E> {
public <T> T[] toArray(T[] a) {
return set.toArray(a);
}
+
+ @Override
+ public String toString() {
+ return set.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return set.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return set.hashCode();
+ }
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FilteredMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FilteredMap_Test.java
index c430b3023e..34a2e3df41 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FilteredMap_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FilteredMap_Test.java
@@ -1003,5 +1003,73 @@ class FilteredMap_Test extends TestBase {
assertNull(map.get("key1"));
assertEquals(5, map.get(null));
}
+
+
//====================================================================================================
+ // toString(), equals(), hashCode()
+
//====================================================================================================
+
+ @Test
+ void w01_toString_delegatesToUnderlyingMap() {
+ var map = FilteredMap
+ .create(String.class, String.class)
+ .filter((k, v) -> true)
+ .build();
+ map.put("key1", "value1");
+ map.put("key2", "value2");
+
+ var underlyingMap = new LinkedHashMap<String, String>();
+ underlyingMap.put("key1", "value1");
+ underlyingMap.put("key2", "value2");
+
+ assertEquals(underlyingMap.toString(), map.toString());
+ }
+
+ @Test
+ void w02_equals_delegatesToUnderlyingMap() {
+ var map1 = FilteredMap
+ .create(String.class, String.class)
+ .filter((k, v) -> true)
+ .build();
+ map1.put("key1", "value1");
+ map1.put("key2", "value2");
+
+ var map2 = new LinkedHashMap<String, String>();
+ map2.put("key1", "value1");
+ map2.put("key2", "value2");
+
+ assertTrue(map1.equals(map2));
+ assertTrue(map2.equals(map1));
+ }
+
+ @Test
+ void w03_equals_differentContents_returnsFalse() {
+ var map1 = FilteredMap
+ .create(String.class, String.class)
+ .filter((k, v) -> true)
+ .build();
+ map1.put("key1", "value1");
+
+ var map2 = new LinkedHashMap<String, String>();
+ map2.put("key1", "value2");
+
+ assertFalse(map1.equals(map2));
+ assertFalse(map2.equals(map1));
+ }
+
+ @Test
+ void w04_hashCode_delegatesToUnderlyingMap() {
+ var map = FilteredMap
+ .create(String.class, String.class)
+ .filter((k, v) -> true)
+ .build();
+ map.put("key1", "value1");
+ map.put("key2", "value2");
+
+ var underlyingMap = new LinkedHashMap<String, String>();
+ underlyingMap.put("key1", "value1");
+ underlyingMap.put("key2", "value2");
+
+ assertEquals(underlyingMap.hashCode(), map.hashCode());
+ }
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentList_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentList_Test.java
index 5e89af5f08..36a3169b6d 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentList_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentList_Test.java
@@ -460,5 +460,62 @@ class FluentList_Test extends TestBase {
assertEquals("item2", list.get(0));
assertEquals("item4", list.get(1));
}
+
+
//====================================================================================================
+ // toString(), equals(), hashCode()
+
//====================================================================================================
+
+ @Test
+ void w01_toString_delegatesToUnderlyingList() {
+ var list = new FluentList<>(new ArrayList<String>());
+ list.a("item1").a("item2").a("item3");
+
+ var underlyingList = new ArrayList<String>();
+ underlyingList.add("item1");
+ underlyingList.add("item2");
+ underlyingList.add("item3");
+
+ assertEquals(underlyingList.toString(), list.toString());
+ }
+
+ @Test
+ void w02_equals_delegatesToUnderlyingList() {
+ var list1 = new FluentList<>(new ArrayList<String>());
+ list1.a("item1").a("item2").a("item3");
+
+ var list2 = new ArrayList<String>();
+ list2.add("item1");
+ list2.add("item2");
+ list2.add("item3");
+
+ assertTrue(list1.equals(list2));
+ assertTrue(list2.equals(list1));
+ }
+
+ @Test
+ void w03_equals_differentContents_returnsFalse() {
+ var list1 = new FluentList<>(new ArrayList<String>());
+ list1.a("item1").a("item2");
+
+ var list2 = new ArrayList<String>();
+ list2.add("item1");
+ list2.add("item3");
+
+ assertFalse(list1.equals(list2));
+ assertFalse(list2.equals(list1));
+ }
+
+ @Test
+ void w04_hashCode_delegatesToUnderlyingList() {
+ var list = new FluentList<>(new ArrayList<String>());
+ list.a("item1").a("item2").a("item3");
+
+ var underlyingList = new ArrayList<String>();
+ underlyingList.add("item1");
+ underlyingList.add("item2");
+ underlyingList.add("item3");
+
+ assertEquals(underlyingList.hashCode(), list.hashCode());
+ }
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentMap_Test.java
index 83c15e7d2f..dd988b3fc9 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentMap_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentMap_Test.java
@@ -437,5 +437,58 @@ class FluentMap_Test extends TestBase {
assertTrue(map.containsKey("key1"));
assertNull(map.get("key1"));
}
+
+
//====================================================================================================
+ // toString(), equals(), hashCode()
+
//====================================================================================================
+
+ @Test
+ void w01_toString_delegatesToUnderlyingMap() {
+ var map = new FluentMap<>(new LinkedHashMap<String, String>());
+ map.a("key1", "value1").a("key2", "value2");
+
+ var underlyingMap = new LinkedHashMap<String, String>();
+ underlyingMap.put("key1", "value1");
+ underlyingMap.put("key2", "value2");
+
+ assertEquals(underlyingMap.toString(), map.toString());
+ }
+
+ @Test
+ void w02_equals_delegatesToUnderlyingMap() {
+ var map1 = new FluentMap<>(new LinkedHashMap<String, String>());
+ map1.a("key1", "value1").a("key2", "value2");
+
+ var map2 = new LinkedHashMap<String, String>();
+ map2.put("key1", "value1");
+ map2.put("key2", "value2");
+
+ assertTrue(map1.equals(map2));
+ assertTrue(map2.equals(map1));
+ }
+
+ @Test
+ void w03_equals_differentContents_returnsFalse() {
+ var map1 = new FluentMap<>(new LinkedHashMap<String, String>());
+ map1.a("key1", "value1");
+
+ var map2 = new LinkedHashMap<String, String>();
+ map2.put("key1", "value2");
+
+ assertFalse(map1.equals(map2));
+ assertFalse(map2.equals(map1));
+ }
+
+ @Test
+ void w04_hashCode_delegatesToUnderlyingMap() {
+ var map = new FluentMap<>(new LinkedHashMap<String, String>());
+ map.a("key1", "value1").a("key2", "value2");
+
+ var underlyingMap = new LinkedHashMap<String, String>();
+ underlyingMap.put("key1", "value1");
+ underlyingMap.put("key2", "value2");
+
+ assertEquals(underlyingMap.hashCode(), map.hashCode());
+ }
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentSet_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentSet_Test.java
index 583577542a..c645e773e9 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentSet_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/FluentSet_Test.java
@@ -412,5 +412,62 @@ class FluentSet_Test extends TestBase {
assertSize(1, set);
assertTrue(set.contains("item1"));
}
+
+
//====================================================================================================
+ // toString(), equals(), hashCode()
+
//====================================================================================================
+
+ @Test
+ void w01_toString_delegatesToUnderlyingSet() {
+ var set = new FluentSet<>(new LinkedHashSet<String>());
+ set.a("item1").a("item2").a("item3");
+
+ var underlyingSet = new LinkedHashSet<String>();
+ underlyingSet.add("item1");
+ underlyingSet.add("item2");
+ underlyingSet.add("item3");
+
+ assertEquals(underlyingSet.toString(), set.toString());
+ }
+
+ @Test
+ void w02_equals_delegatesToUnderlyingSet() {
+ var set1 = new FluentSet<>(new LinkedHashSet<String>());
+ set1.a("item1").a("item2").a("item3");
+
+ var set2 = new LinkedHashSet<String>();
+ set2.add("item1");
+ set2.add("item2");
+ set2.add("item3");
+
+ assertTrue(set1.equals(set2));
+ assertTrue(set2.equals(set1));
+ }
+
+ @Test
+ void w03_equals_differentContents_returnsFalse() {
+ var set1 = new FluentSet<>(new LinkedHashSet<String>());
+ set1.a("item1").a("item2");
+
+ var set2 = new LinkedHashSet<String>();
+ set2.add("item1");
+ set2.add("item3");
+
+ assertFalse(set1.equals(set2));
+ assertFalse(set2.equals(set1));
+ }
+
+ @Test
+ void w04_hashCode_delegatesToUnderlyingSet() {
+ var set = new FluentSet<>(new LinkedHashSet<String>());
+ set.a("item1").a("item2").a("item3");
+
+ var underlyingSet = new LinkedHashSet<String>();
+ underlyingSet.add("item1");
+ underlyingSet.add("item2");
+ underlyingSet.add("item3");
+
+ assertEquals(underlyingSet.hashCode(), set.hashCode());
+ }
}