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 a8a4e243cc Marshall module improvements
a8a4e243cc is described below
commit a8a4e243ccd9139e5535f3916564386caf01591b
Author: James Bognar <[email protected]>
AuthorDate: Mon Dec 8 18:43:35 2025 -0500
Marshall module improvements
---
.../src/main/java/org/apache/juneau/BeanMeta.java | 32 +++++++++++-----------
1 file changed, 16 insertions(+), 16 deletions(-)
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 df2f0726b7..cd09e9ec51 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
@@ -267,21 +267,6 @@ public class BeanMeta<T> {
this._implClassConstructor = implClassConstructor;
}
- /*
- * Returns the property name of the specified field if it's a
valid property.
- * Returns null if the field isn't a valid property.
- */
- private static String findPropertyName(FieldInfo f,
AnnotationProvider ap, PropertyNamer pn) {
- List<Beanp> lp = list();
- List<Name> ln = list();
- ap.find(Beanp.class, f).forEach(x -> lp.add(x.inner()));
- ap.find(Name.class, f).forEach(x -> ln.add(x.inner()));
- var name = bpName(lp, ln);
- if (isNotEmpty(name))
- return name;
- return pn.getPropertyName(f.getName());
- }
-
void init(BeanMeta<T> beanMeta) {
var c = _classMeta.inner();
var ci = _classMeta;
@@ -432,7 +417,7 @@ public class BeanMeta<T> {
} else /* Use 'better' introspection */ {
findBeanFields(_ctx, c2, stopClass,
fVis).forEach(x -> {
- var name =
findPropertyName(info(x), _ap, _propertyNamer);
+ var name =
_ap.find(info(x)).stream().filter(x2 -> x2.isType(Beanp.class) ||
x2.isType(Name.class)).map(x2 ->
name(x2)).filter(Objects::nonNull).findFirst().orElse(_propertyNamer.getPropertyName(x.getName()));
if (nn(name)) {
if (!
normalProps.containsKey(name))
normalProps.put(name, BeanPropertyMeta.builder(beanMeta, name));
@@ -624,6 +609,21 @@ public class BeanMeta<T> {
return name.orElse(null);
}
+ static String name(AnnotationInfo<?> ai) {
+ if (ai.isType(Beanp.class)) {
+ Beanp p = ai.cast(Beanp.class).inner();
+ if (isNotEmpty(p.name()))
+ return p.name();
+ if (isNotEmpty(p.value()))
+ return p.value();
+ } else {
+ Name n = ai.cast(Name.class).inner();
+ if (isNotEmpty(n.value()))
+ return n.value();
+ }
+ return null;
+ }
+
static final Collection<Field> findBeanFields(BeanContext ctx, Class<?>
c, Class<?> stopClass, Visibility v) {
var l = new LinkedList<Field>();
var noIgnoreTransients = ! ctx.isIgnoreTransientFields();