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 56045bf54a Marshall module improvements
56045bf54a is described below
commit 56045bf54a52db84e0da129cbd4d192ff5aa657a
Author: James Bognar <[email protected]>
AuthorDate: Tue Dec 9 11:28:29 2025 -0500
Marshall module improvements
---
.../java/org/apache/juneau/jena/RdfBeanMeta.java | 2 +-
.../src/main/java/org/apache/juneau/BeanMeta.java | 31 +---------------------
.../apache/juneau/csv/CsvSerializerSession.java | 10 +++++--
.../jsonschema/JsonSchemaGeneratorSession.java | 2 +-
.../java/org/apache/juneau/xml/XmlBeanMeta.java | 2 +-
.../apache/juneau/xml/XmlSerializerSession.java | 2 +-
.../apache/juneau/rest/beans/BeanDescription.java | 4 +--
7 files changed, 15 insertions(+), 38 deletions(-)
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
index 8860cebc5c..1bf75fac6a 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanMeta.java
@@ -43,7 +43,7 @@ public class RdfBeanMeta extends ExtendedBeanMeta {
*/
public RdfBeanMeta(BeanMeta<?> beanMeta, RdfMetaProvider mp) {
super(beanMeta);
- this.beanUriProperty = beanMeta.firstProperty(x ->
mp.getRdfBeanPropertyMeta(x).isBeanUri(), x -> x).orElse(null);
+ this.beanUriProperty =
beanMeta.getProperties().values().stream().filter(x ->
mp.getRdfBeanPropertyMeta(x).isBeanUri()).findFirst().orElse(null);
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 962c61a61c..b6df786ada 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -889,7 +889,7 @@ public class BeanMeta<T> {
beanProxyInvocationHandler =
memoize(()->ctx.isUseInterfaceProxies() && c.isInterface() ? new
BeanProxyInvocationHandler<>(this) : null);
}
- protected Map<String,BeanPropertyMeta> getProperties() {
+ public Map<String,BeanPropertyMeta> getProperties() {
return properties;
}
@@ -914,28 +914,6 @@ public class BeanMeta<T> {
return (o instanceof BeanMeta<?> o2) && eq(this, o2, (x, y) ->
eq(x.classMeta, y.classMeta));
}
- /**
- * Performs a function on the first property that matches the specified
filter.
- *
- * @param <T2> The type to convert the property to.
- * @param filter The filter to apply.
- * @param function The function to apply to the matching property.
- * @return The result of the function. Never <jk>null</jk>.
- */
- public <T2> Optional<T2> firstProperty(Predicate<BeanPropertyMeta>
filter, Function<BeanPropertyMeta,T2> function) {
- return
properties.values().stream().filter(filter).map(function).findFirst();
- }
-
- /**
- * Performs an action on all matching properties.
- *
- * @param filter The filter to apply.
- * @param action The action to apply.
- */
- public void forEachProperty(Predicate<BeanPropertyMeta> filter,
Consumer<BeanPropertyMeta> action) {
- properties.values().stream().filter(x -> filter == null ? true
: filter.test(x)).forEach(action);
- }
-
/**
* Returns the {@link ClassMeta} of this bean.
*
@@ -999,13 +977,6 @@ public class BeanMeta<T> {
return bpm;
}
- /**
- * Returns the metadata on all properties associated with this bean.
- *
- * @return Metadata on all properties associated with this bean.
- */
- public Collection<BeanPropertyMeta> getPropertyMetas() { return
properties.values(); }
-
/**
* Returns a mock bean property that resolves to the name
<js>"_type"</js> and whose value always resolves to the
* dictionary name of the bean.
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
index 9fa353381b..22a07ec907 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerSession.java
@@ -246,15 +246,21 @@ public class CsvSerializerSession extends
WriterSerializerSession {
if (entryType.isBean()) {
var bm = entryType.getBeanMeta();
var addComma = Flag.create();
-
bm.forEachProperty(BeanPropertyMeta::canRead, x -> {
+
+
bm.getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(x
-> {
addComma.ifSet(() ->
w.w(',')).set();
w.writeEntry(x.getName());
});
+
+//
bm.forEachProperty(BeanPropertyMeta::canRead, x -> {
+// addComma.ifSet(() ->
w.w(',')).set();
+// w.writeEntry(x.getName());
+// });
w.append('\n');
l.forEach(x -> {
var addComma2 = Flag.create();
BeanMap<?> bean = toBeanMap(x);
-
bm.forEachProperty(BeanPropertyMeta::canRead, y -> {
+
bm.getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(y
-> {
addComma2.ifSet(() ->
w.w(',')).set();
// Bean property values
are already swapped by BeanPropertyMeta.get() via toSerializedForm()
var value = y.get(bean,
y.getName());
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 0b28eb59f2..6a9ec4c6ac 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -420,7 +420,7 @@ public class JsonSchemaGeneratorSession extends
BeanTraverseSession {
BeanMeta bm = getBeanMeta(sType.inner());
if (nn(pNames))
bm = new BeanMetaFiltered(bm, pNames);
- for (Iterator<BeanPropertyMeta> i =
bm.getPropertyMetas().iterator(); i.hasNext();) {
+ for (Iterator<BeanPropertyMeta> i =
bm.getProperties().values().iterator(); i.hasNext();) {
BeanPropertyMeta p = i.next();
if (p.canRead())
properties.put(p.getName(),
getSchema(p.getClassMeta(), p.getName(), p.getProperties(), exampleAdded,
descriptionAdded, getJsonSchemaBeanPropertyMeta(p)));
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
index d654e42fbc..49ea30bcf6 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
@@ -61,7 +61,7 @@ public class XmlBeanMeta extends ExtendedBeanMeta {
throw bex(c, "Invalid format specified
in @Xml annotation on bean: {0}. Must be one of the following:
DEFAULT,ATTRS,ELEMENTS,VOID", x.format());
});
- beanMeta.forEachProperty(null, p -> {
+ beanMeta.getProperties().values().forEach(p -> {
var xf =
mp.getXmlBeanPropertyMeta(p).getXmlFormat();
var pcm = p.getClassMeta();
if (xf == ATTR) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index 03d0de033b..f55f9c3319 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -615,7 +615,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
}
if (innerType.isBean()) {
-
innerType.getBeanMeta().forEachProperty(BeanPropertyMeta::canRead, x -> {
+
innerType.getBeanMeta().getProperties().values().stream().filter(BeanPropertyMeta::canRead).forEach(x
-> {
ns.set(getXmlBeanPropertyMeta(x).getNamespace());
if (ns.isPresent() &&
nn(ns.get().uri))
addNamespace(ns.get());
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
index fd094cf9ad..e6cb65d32b 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/BeanDescription.java
@@ -88,9 +88,9 @@ public class BeanDescription {
BeanMeta<?> bm = BeanContext.DEFAULT.getBeanMeta(c);
if (bm == null)
throw rex("Class ''{0}'' is not a valid bean.", cn(c));
- properties = new
BeanPropertyDescription[bm.getPropertyMetas().size()];
+ properties = new
BeanPropertyDescription[bm.getProperties().size()];
int i = 0;
- for (var pm : bm.getPropertyMetas())
+ for (var pm : bm.getProperties().values())
properties[i++] = new
BeanPropertyDescription(pm.getName(), pm.getClassMeta());
}
}
\ No newline at end of file