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 5eb4d138ea Marshall module improvements
5eb4d138ea is described below

commit 5eb4d138eacf63f0e49b7e02946a98bdd06f50ed
Author: James Bognar <[email protected]>
AuthorDate: Sat Dec 13 07:32:47 2025 -0500

    Marshall module improvements
---
 .../main/java/org/apache/juneau/commons/collections/MapBuilder.java | 4 ++++
 .../juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java    | 2 +-
 .../src/main/java/org/apache/juneau/BeanPropertyMeta.java           | 4 ++--
 .../juneau/internal/{FilteredMap.java => FilteredKeyMap.java}       | 4 ++--
 .../src/test/java/org/apache/juneau/utils/FilteredMapTest.java      | 6 +++---
 5 files changed, 12 insertions(+), 8 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/MapBuilder.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/MapBuilder.java
index 705b86e046..dc098d4f95 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/MapBuilder.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/MapBuilder.java
@@ -124,6 +124,10 @@ public class MapBuilder<K,V> {
                return new MapBuilder<>(assertArgNotNull("keyType", keyType), 
assertArgNotNull("valueType", valueType));
        }
 
+       public static <K,V> MapBuilder<K,V> create() {
+               return new MapBuilder(Object.class, Object.class);
+       }
+
        private Map<K,V> map;
        private boolean unmodifiable = false, sparse = false;
        private Comparator<K> comparator;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index 3e6b2cdd09..f0f8ebc576 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -473,7 +473,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
         *      <br>Note that modifying the values in this map will also modify 
the underlying bean.
         */
        public Map<String,Object> getProperties(String...fields) {
-               return new FilteredMap<>(null, this, fields);
+               return new FilteredKeyMap<>(null, this, fields);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index ac6383b3fd..eca9a64a24 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -1155,12 +1155,12 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
                        return new BeanMap(session, o, new 
BeanMetaFiltered(cm.getBeanMeta(), properties));
                if (cm.isMap()) {
                        var propsArray = properties == null ? null : 
properties.toArray(new String[0]);
-                       return new FilteredMap(cm, (Map)o, propsArray);
+                       return new FilteredKeyMap(cm, (Map)o, propsArray);
                }
                if (cm.isObject()) {
                        if (o instanceof Map o2) {
                                var propsArray = properties == null ? null : 
properties.toArray(new String[0]);
-                               return new FilteredMap(cm, o2, propsArray);
+                               return new FilteredKeyMap(cm, o2, propsArray);
                        }
                        var bm = bc.getBeanMeta(o.getClass());
                        if (nn(bm))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
similarity index 94%
rename from 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
rename to 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
index 8314cdf20c..ec94d52fd6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
@@ -29,7 +29,7 @@ import org.apache.juneau.*;
  * @param <K> The key class type.
  * @param <V> The value class type.
  */
-public class FilteredMap<K,V> extends AbstractMap<K,V> implements 
Delegate<Map<K,V>> {
+public class FilteredKeyMap<K,V> extends AbstractMap<K,V> implements 
Delegate<Map<K,V>> {
 
        /**
         * A set with ordered entries (a List with a Set API).
@@ -66,7 +66,7 @@ public class FilteredMap<K,V> extends AbstractMap<K,V> 
implements Delegate<Map<K
         * @param keys The keys in the new map.  Must not be <jk>null</jk>.
         */
        // TODO - Convert keys to List<K>
-       public FilteredMap(ClassMeta<Map<K,V>> classMeta, Map<K,V> innerMap, 
K[] keys) {
+       public FilteredKeyMap(ClassMeta<Map<K,V>> classMeta, Map<K,V> innerMap, 
K[] keys) {
                assertArgNotNull("innerMap", innerMap);
                assertArgNotNull("keys", keys);
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
index fdf7c8cf79..5892ff55b7 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
@@ -40,14 +40,14 @@ class FilteredMapTest extends TestBase {
                ClassMeta<Map<String,Object>> cm = 
BeanContext.DEFAULT.getClassMeta(Map.class, String.class, Object.class);
                ClassMeta<Map<String,String>> cm2 = 
BeanContext.DEFAULT.getClassMeta(Map.class, String.class, String.class);
 
-               var m2 = new FilteredMap<>(cm, m, a("a"));
+               var m2 = new FilteredKeyMap<>(cm, m, a("a"));
 
                assertBean(m2, "a", "1");
 
                m2.entrySet().iterator().next().setValue("3");
                assertBean(m2, "a", "3");
 
-               assertThrows(IllegalArgumentException.class, ()->new 
FilteredMap<>(cm2, null, new String[0]));
-               assertThrows(IllegalArgumentException.class, ()->new 
FilteredMap<>(cm, m, null));
+               assertThrows(IllegalArgumentException.class, ()->new 
FilteredKeyMap<>(cm2, null, new String[0]));
+               assertThrows(IllegalArgumentException.class, ()->new 
FilteredKeyMap<>(cm, m, null));
        }
 }
\ No newline at end of file

Reply via email to