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