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 f4d08bebd9 Utility class modernization
f4d08bebd9 is described below

commit f4d08bebd980a58dd976d352ffbaa8fae11e08f2
Author: James Bognar <[email protected]>
AuthorDate: Tue Nov 4 07:17:51 2025 -0500

    Utility class modernization
---
 .../juneau/common/reflect/ConstructorInfo.java     |   7 +-
 .../juneau/common/reflect/ExecutableInfo.java      | 113 +++------------------
 .../apache/juneau/common/reflect/MethodInfo.java   |  26 +++--
 .../juneau/httppart/bean/MethodInfoUtils.java      |   6 +-
 .../java/org/apache/juneau/swap/SurrogateSwap.java |   2 +-
 .../juneau/common/reflect/ExecutableInfo_Test.java |  24 ++---
 6 files changed, 48 insertions(+), 130 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ConstructorInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ConstructorInfo.java
index c5785d1de6..9f8771217d 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ConstructorInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ConstructorInfo.java
@@ -129,9 +129,10 @@ public class ConstructorInfo extends ExecutableInfo 
implements Comparable<Constr
                if (i == 0) {
                        i = getParameterCount() - o.getParameterCount();
                        if (i == 0) {
-                               for (int j = 0; j < getParameterCount() && i == 
0; j++) {
-                                       Class<?>[] tpt = _getRawParamTypes(), 
opt = o._getRawParamTypes();
-                                       i = 
tpt[j].getName().compareTo(opt[j].getName());
+                               var params = getParameters();
+                               var oParams = o.getParameters();
+                               for (int j = 0; j < params.size() && i == 0; 
j++) {
+                                       i = 
params.get(j).getParameterType().getName().compareTo(oParams.get(j).getParameterType().getName());
                                }
                        }
                }
diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
index 2bd9d23251..c32b9a73ab 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
@@ -47,8 +47,6 @@ public abstract class ExecutableInfo extends AccessibleInfo {
        private final Supplier<List<ClassInfo>> exceptions = 
memoize(this::findExceptions);
        private final Supplier<List<AnnotationInfo<Annotation>>> 
declaredAnnotations = memoize(this::findDeclaredAnnotations);
 
-       private volatile Class<?>[] rawParamTypes;
-       private volatile Type[] rawGenericParamTypes;
        private volatile Annotation[][] rawParameterAnnotations;
        private volatile Annotation[] rawDeclaredAnnotations;
 
@@ -83,7 +81,7 @@ public abstract class ExecutableInfo extends AccessibleInfo {
         * @return This object.
         */
        public ExecutableInfo forEachParam(Predicate<ParameterInfo> filter, 
Consumer<ParameterInfo> action) {
-               for (var pi : _getParams())
+               for (var pi : getParameters())
                        if (test(filter, pi))
                                action.accept(pi);
                return this;
@@ -238,7 +236,7 @@ public abstract class ExecutableInfo extends AccessibleInfo 
{
         */
        public final ParameterInfo getParameter(int index) {
                checkIndex(index);
-               return _getParams()[index];
+               return getParameters().get(index);
        }
 
        /**
@@ -261,42 +259,6 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         */
        public final List<ParameterInfo> getParameters() { return 
parameters.get(); }
 
-       /**
-        * Returns the raw generic parameter type of the parameter at the 
specified index.
-        *
-        * @param index The parameter index.
-        * @return The raw generic parameter type of the parameter at the 
specified index.
-        */
-       public final Type getRawGenericParamType(int index) {
-               checkIndex(index);
-               return _getRawGenericParamTypes()[index];
-       }
-
-       /**
-        * Returns the raw generic parameter types on this executable.
-        *
-        * @return The raw generic parameter types on this executable.
-        */
-       public final List<Type> getRawGenericParamTypes() { return 
u(l(_getRawGenericParamTypes())); }
-
-       /**
-        * Returns the raw parameter type of the parameter at the specified 
index.
-        *
-        * @param index The parameter index.
-        * @return The raw parameter type of the parameter at the specified 
index.
-        */
-       public final Class<?> getRawParamType(int index) {
-               checkIndex(index);
-               return _getRawParamTypes()[index];
-       }
-
-       /**
-        * Returns the raw parameter types on this executable.
-        *
-        * @return The raw parameter types on this executable.
-        */
-       public final List<Class<?>> getRawParamTypes() { return 
u(l(_getRawParamTypes())); }
-
        /**
         * Returns the short name of this executable.
         *
@@ -311,11 +273,11 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
        public final String getShortName() {
                var sb = new StringBuilder(64);
                sb.append(getSimpleName()).append('(');
-               Class<?>[] pt = _getRawParamTypes();
-               for (int i = 0; i < pt.length; i++) {
+               var params = getParameters();
+               for (int i = 0; i < params.size(); i++) {
                        if (i > 0)
                                sb.append(',');
-                       sb.append(pt[i].getSimpleName());
+                       
sb.append(params.get(i).getParameterType().getNameSimple());
                }
                sb.append(')');
                return sb.toString();
@@ -467,10 +429,10 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         * @return <jk>true</jk> if this method has this arguments in the exact 
order.
         */
        public final boolean hasParameterTypes(Class<?>...args) {
-               Class<?>[] pt = _getRawParamTypes();
-               if (pt.length == args.length) {
-                       for (int i = 0; i < pt.length; i++)
-                               if (! pt[i].equals(args[i]))
+               var params = getParameters();
+               if (params.size() == args.length) {
+                       for (int i = 0; i < params.size(); i++)
+                               if (! 
params.get(i).getParameterType().inner().equals(args[i]))
                                        return false;
                        return true;
                }
@@ -484,10 +446,10 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         * @return <jk>true</jk> if this method has this arguments in the exact 
order.
         */
        public final boolean hasParameterTypes(ClassInfo...args) {
-               Class<?>[] pt = _getRawParamTypes();
-               if (pt.length == args.length) {
-                       for (int i = 0; i < pt.length; i++)
-                               if (! pt[i].equals(args[i].inner()))
+               var params = getParameters();
+               if (params.size() == args.length) {
+                       for (int i = 0; i < params.size(); i++)
+                               if (! 
params.get(i).getParameterType().inner().equals(args[i].inner()))
                                        return false;
                        return true;
                }
@@ -634,29 +596,6 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
        // Medium Priority Methods (generic type information)
        
//-----------------------------------------------------------------------------------------------------------------
 
-       /**
-        * Returns an array of {@link Type} objects that represent the 
exceptions declared to be thrown by this executable.
-        *
-        * <p>
-        * Returns generic type information including parameterized types, 
unlike {@link #getExceptionTypes()} which returns raw types.
-        *
-        * <p>
-        * Same as calling {@link Executable#getGenericExceptionTypes()}.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bjava'>
-        *      <jc>// Get generic exception types from method that throws 
IOException, IllegalArgumentException</jc>
-        *      MethodInfo <jv>mi</jv> = 
ClassInfo.<jsm>of</jsm>(MyClass.<jk>class</jk>).getMethod(<js>"myMethod"</js>);
-        *      Type[] <jv>exTypes</jv> = 
<jv>mi</jv>.getGenericExceptionTypes();
-        * </p>
-        *
-        * @return An array of {@link Type} objects representing exception 
types, or an empty array if none.
-        * @see Executable#getGenericExceptionTypes()
-        */
-       public final Type[] getGenericExceptionTypes() {
-               return e.getGenericExceptionTypes();
-       }
-
        /**
         * Returns a string describing this executable, including type 
parameters.
         *
@@ -804,10 +743,6 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
                return rawDeclaredAnnotations;
        }
 
-       final ClassInfo[] _getExceptionTypes() {
-               return exceptions.get().toArray(new ClassInfo[0]);
-       }
-
        final Annotation[][] _getParameterAnnotations() {
                if (rawParameterAnnotations == null) {
                        synchronized (this) {
@@ -860,26 +795,4 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
                        .mapToObj(i -> new ParameterInfo(this, rp[i], i, 
ClassInfo.of(ptc[i], genericTypes[i])))
                        .toList();
        }
-
-       final ParameterInfo[] _getParams() {
-               return parameters.get().toArray(new ParameterInfo[0]);
-       }
-
-       final Type[] _getRawGenericParamTypes() {
-               if (rawGenericParamTypes == null) {
-                       synchronized (this) {
-                               rawGenericParamTypes = 
e.getGenericParameterTypes();
-                       }
-               }
-               return rawGenericParamTypes;
-       }
-
-       Class<?>[] _getRawParamTypes() {
-               if (rawParamTypes == null) {
-                       synchronized (this) {
-                               rawParamTypes = e.getParameterTypes();
-                       }
-               }
-               return rawParamTypes;
-       }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
index ba86868ac3..9aae734001 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
@@ -140,7 +140,8 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
         * @return <jk>true</jk> if the method parameters only consist of the 
types specified in the list.
         */
        public boolean argsOnlyOfType(Class<?>...args) {
-               for (var c1 : _getRawParamTypes()) {
+               for (var param : getParameters()) {
+                       var c1 = param.getParameterType().inner();
                        boolean foundMatch = false;
                        for (var c2 : args)
                                if (c1 == c2)
@@ -191,10 +192,12 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
        public int compareTo(MethodInfo o) {
                int i = getSimpleName().compareTo(o.getSimpleName());
                if (i == 0) {
-                       i = _getRawParamTypes().length - 
o._getRawParamTypes().length;
+                       var params = getParameters();
+                       var oParams = o.getParameters();
+                       i = params.size() - oParams.size();
                        if (i == 0) {
-                               for (int j = 0; j < _getRawParamTypes().length 
&& i == 0; j++) {
-                                       i = 
_getRawParamTypes()[j].getName().compareTo(o._getRawParamTypes()[j].getName());
+                               for (int j = 0; j < params.size() && i == 0; 
j++) {
+                                       i = 
params.get(j).getParameterType().getName().compareTo(oParams.get(j).getParameterType().getName());
                                }
                        }
                }
@@ -443,14 +446,13 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
        public String getSignature() {
                var sb = new StringBuilder(128);
                sb.append(m.getName());
-               Class<?>[] pt = _getRawParamTypes();
-               if (pt.length > 0) {
+               var params = getParameters();
+               if (params.size() > 0) {
                        sb.append('(');
-                       List<ParameterInfo> mpi = getParameters();
-                       for (int i = 0; i < pt.length; i++) {
+                       for (int i = 0; i < params.size(); i++) {
                                if (i > 0)
                                        sb.append(',');
-                               
mpi.get(i).getParameterType().appendNameFormatted(sb, ClassNameFormat.FULL, 
true, '$', ClassArrayFormat.BRACKETS);
+                               
params.get(i).getParameterType().appendNameFormatted(sb, ClassNameFormat.FULL, 
true, '$', ClassArrayFormat.BRACKETS);
                        }
                        sb.append(')');
                }
@@ -467,10 +469,12 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
         * @return <jk>true</jk> if this method has at least the specified 
parameters.
         */
        public boolean hasAllArgs(Class<?>...requiredParams) {
-               List<Class<?>> rawParamTypes = getRawParamTypes();
+               var paramTypes = getParameters().stream()
+                       .map(p -> p.getParameterType().inner())
+                       .toList();
 
                for (var c : requiredParams)
-                       if (! rawParamTypes.contains(c))
+                       if (! paramTypes.contains(c))
                                return false;
 
                return true;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/MethodInfoUtils.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/MethodInfoUtils.java
index f200d73602..3a1b986406 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/MethodInfoUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/MethodInfoUtils.java
@@ -33,10 +33,10 @@ import org.apache.juneau.common.reflect.*;
 class MethodInfoUtils {
 
        static void assertArgType(MethodInfo m, Class<? extends Annotation> a, 
Class<?>...c) throws InvalidAnnotationException {
-               List<Class<?>> ptt = m.getRawParamTypes();
-               if (ptt.size() != 1)
+               var params = m.getParameters();
+               if (params.size() != 1)
                        throw new InvalidAnnotationException("Only one 
parameter can be passed to method with @{0} annotation.  Method=''{0}''", 
scn(a), m);
-               Class<?> rt = ptt.get(0);
+               Class<?> rt = params.get(0).getParameterType().inner();
                for (var cc : c)
                        if (rt == cc)
                                return;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/SurrogateSwap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/SurrogateSwap.java
index 82de020db3..31b5ecfbe4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/SurrogateSwap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/SurrogateSwap.java
@@ -55,7 +55,7 @@ public class SurrogateSwap<T,F> extends ObjectSwap<T,F> {
                List<SurrogateSwap<?,?>> l = new LinkedList<>();
                var ci = ClassInfo.of(c);
                ci.forEachPublicConstructor(x -> x.hasNoAnnotation(bc, 
BeanIgnore.class) && x.hasNumParams(1) && x.isPublic(), x -> {
-                       var pt = x.getRawParamType(0);
+                       var pt = x.getParameter(0).getParameterType().inner();
                        if (! pt.equals(c.getDeclaringClass())) {
                                // Find the unswap method if there is one.
                                var mi = ci.getPublicMethod(y -> 
y.hasReturnType(pt));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
index 7ca6712eab..472a985e48 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
@@ -191,27 +191,27 @@ class ExecutableInfo_Test extends TestBase {
        }
 
        @Test void getRawParamTypes() {
-               check("", b_c1.getRawParamTypes());
-               check("String", b_c2.getRawParamTypes());
-               check("", b_m1.getRawParamTypes());
-               check("String", b_m2.getRawParamTypes());
+               check("", b_c1.getParameters().stream().map(p -> 
p.getParameterType().inner()).toList());
+               check("String", b_c2.getParameters().stream().map(p -> 
p.getParameterType().inner()).toList());
+               check("", b_m1.getParameters().stream().map(p -> 
p.getParameterType().inner()).toList());
+               check("String", b_m2.getParameters().stream().map(p -> 
p.getParameterType().inner()).toList());
        }
 
        @Test void getRawParamType() {
-               check("String", b_c2.getRawParamType(0));
-               check("String", b_m2.getRawParamType(0));
+               check("String", 
b_c2.getParameter(0).getParameterType().inner());
+               check("String", 
b_m2.getParameter(0).getParameterType().inner());
        }
 
        @Test void getRawGenericParamType() {
-               check("String", b_c2.getRawGenericParamType(0));
-               check("String", b_m2.getRawGenericParamType(0));
+               check("String", 
b_c2.getParameter(0).getParameterType().innerType());
+               check("String", 
b_m2.getParameter(0).getParameterType().innerType());
        }
 
        @Test void getRawGenericParamTypes() {
-               check("", b_c1.getRawGenericParamTypes());
-               check("String", b_c2.getRawGenericParamTypes());
-               check("", b_m1.getRawGenericParamTypes());
-               check("String", b_m2.getRawGenericParamTypes());
+               check("", b_c1.getParameters().stream().map(p -> 
p.getParameterType().innerType()).toList());
+               check("String", b_c2.getParameters().stream().map(p -> 
p.getParameterType().innerType()).toList());
+               check("", b_m1.getParameters().stream().map(p -> 
p.getParameterType().innerType()).toList());
+               check("String", b_m2.getParameters().stream().map(p -> 
p.getParameterType().innerType()).toList());
        }
 
        @Test void getRawParameters() {

Reply via email to