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 8d862c0226 Marshall module improvements
8d862c0226 is described below
commit 8d862c02264f2bb1f553c7b7e835334d5162a6e7
Author: James Bognar <[email protected]>
AuthorDate: Sun Dec 7 19:50:52 2025 -0500
Marshall module improvements
---
.../src/main/java/org/apache/juneau/BeanSession.java | 5 +----
.../src/main/java/org/apache/juneau/ClassMeta.java | 13 +++++++------
2 files changed, 8 insertions(+), 10 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 9033dfc322..7006796ea7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1599,10 +1599,7 @@ public class BeanSession extends ContextSession {
*/
protected final ClassMeta<Object[]> getArgsClassMeta(Type[] classes) {
assertArgNotNull("classes", classes);
- var cm = new ClassMeta<?>[classes.length];
- for (var i = 0; i < classes.length; i++)
- cm[i] = getClassMeta(classes[i]);
- return new ClassMeta(cm);
+ return new ClassMeta(Arrays.stream(classes).map(x ->
getClassMeta(x)).toList());
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 3799a34e15..c08c8c4452 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -29,6 +29,7 @@ import java.lang.reflect.Proxy;
import java.net.*;
import java.time.temporal.*;
import java.util.*;
+import java.util.List;
import java.util.concurrent.*;
import java.util.function.*;
@@ -136,7 +137,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
return true;
}
- private final ClassMeta<?>[] args;
// Arg types if this is an array of
args.
+ private final List<ClassMeta<?>> args;
// Arg types if this is an array of
args.
private final BeanContext beanContext;
// The bean context that created this
object.
private final OptionalSupplier<BeanFilter> beanFilter;
private final Supplier<BuilderSwap<T,?>> builderSwap;
// The builder swap associated with
this bean (if it has one).
@@ -326,7 +327,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* Constructor for args-arrays.
*/
@SuppressWarnings("unchecked")
- ClassMeta(ClassMeta<?>[] args) {
+ ClassMeta(List<ClassMeta<?>> args) {
super((Class<T>)Object[].class);
this.args = args;
this.childSwaps = null;
@@ -490,9 +491,9 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @throws BeanRuntimeException If this metadata object is not a list
of arguments, or the index is out of range.
*/
public ClassMeta<?> getArg(int index) {
- if (nn(args) && index >= 0 && index < args.length)
- return args[index];
- throw bex("Invalid argument index specified: {0}. Only {1}
arguments are defined.", index, args == null ? 0 : args.length);
+ if (nn(args) && index >= 0 && index < args.size())
+ return args.get(index);
+ throw bex("Invalid argument index specified: {0}. Only {1}
arguments are defined.", index, args == null ? 0 : args.size());
}
/**
@@ -500,7 +501,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
*
* @return The argument types of this meta, or <jk>null</jk> if this
isn't an array of argument types.
*/
- public ClassMeta<?>[] getArgs() { return args; }
+ public List<ClassMeta<?>> getArgs() { return args; }
/**
* Returns the {@link BeanContext} that created this object.