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 18fb6eb3a7 Utility class modernization
18fb6eb3a7 is described below
commit 18fb6eb3a7e83a5e0d4930d0f11391c19f596822
Author: James Bognar <[email protected]>
AuthorDate: Tue Nov 4 08:00:20 2025 -0500
Utility class modernization
---
.../juneau/common/reflect/AnnotationInfo.java | 2 +-
.../apache/juneau/common/reflect/ClassInfo.java | 2 +-
.../juneau/common/reflect/ConstructorInfo.java | 6 -
.../juneau/common/reflect/ExecutableInfo.java | 124 ++++++---------------
.../apache/juneau/common/reflect/MethodInfo.java | 6 -
.../org/apache/juneau/common/utils/ClassUtils.java | 2 +-
.../src/main/java/org/apache/juneau/BeanMeta.java | 22 ++--
.../apache/juneau/BeanProxyInvocationHandler.java | 4 +-
.../src/main/java/org/apache/juneau/ClassMeta.java | 8 +-
.../src/main/java/org/apache/juneau/Context.java | 4 +-
.../java/org/apache/juneau/cp/BeanCreator.java | 6 +-
.../main/java/org/apache/juneau/cp/BeanStore.java | 2 +-
.../juneau/httppart/bean/ResponseBeanMeta.java | 2 +-
.../java/org/apache/juneau/parser/ParserSet.java | 2 +-
.../java/org/apache/juneau/reflect/Mutaters.java | 2 +-
.../apache/juneau/serializer/SerializerSet.java | 2 +-
.../org/apache/juneau/svl/VarResolverSession.java | 6 +-
.../java/org/apache/juneau/swap/AutoListSwap.java | 4 +-
.../java/org/apache/juneau/swap/AutoMapSwap.java | 4 +-
.../org/apache/juneau/swap/AutoNumberSwap.java | 4 +-
.../org/apache/juneau/swap/AutoObjectSwap.java | 4 +-
.../java/org/apache/juneau/swap/BuilderSwap.java | 6 +-
.../java/org/apache/juneau/swap/SurrogateSwap.java | 2 +-
.../apache/juneau/rest/client/ResponseContent.java | 2 +-
.../org/apache/juneau/rest/client/RestRequest.java | 2 +-
.../juneau/common/reflect/ClassInfo_Test.java | 2 +-
.../juneau/common/reflect/ConstructorInfoTest.java | 11 +-
.../juneau/common/reflect/ExecutableInfo_Test.java | 44 ++++----
.../juneau/common/reflect/MethodInfo_Test.java | 9 +-
29 files changed, 112 insertions(+), 184 deletions(-)
diff --git
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationInfo.java
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationInfo.java
index ef9cdc6252..ee3099c133 100644
---
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationInfo.java
+++
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationInfo.java
@@ -469,7 +469,7 @@ public class AnnotationInfo<T extends Annotation> {
private static int findRank(Object a) {
return ClassInfo.of(a).getMethods().stream()
- .filter(m -> m.hasName("rank") && m.hasNoParams() &&
m.hasReturnType(int.class))
+ .filter(m -> m.hasName("rank") && m.hasNoParameters()
&& m.hasReturnType(int.class))
.findFirst()
.map(m -> safe(() -> (int)m.invoke(a)))
.orElse(0);
diff --git
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
index 067dd4f060..91fda7a635 100644
---
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
+++
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ClassInfo.java
@@ -1110,7 +1110,7 @@ public class ClassInfo extends ElementInfo implements
Annotatable {
return null;
int expectedParams = isNonStaticMemberClass() ? 1 : 0;
return getDeclaredConstructors().stream()
- .filter(cc -> cc.hasNumParams(expectedParams))
+ .filter(cc -> cc.hasNumParameters(expectedParams))
.filter(cc -> cc.isVisible(v))
.map(cc -> cc.accessible(v))
.findFirst()
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 9f8771217d..bc9a7db918 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
@@ -139,12 +139,6 @@ public class ConstructorInfo extends ExecutableInfo
implements Comparable<Constr
return i;
}
- @Override /* Overridden from ExecutableInfo */
- public ConstructorInfo forEachParam(Predicate<ParameterInfo> filter,
Consumer<ParameterInfo> action) {
- super.forEachParam(filter, action);
- return this;
- }
-
/**
* Finds the annotation of the specified type defined on this
constructor.
*
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 ea0b5e0f89..8fde4898d3 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
@@ -16,11 +16,14 @@
*/
package org.apache.juneau.common.reflect;
+import static org.apache.juneau.common.reflect.ClassArrayFormat.*;
+import static org.apache.juneau.common.reflect.ClassNameFormat.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.PredicateUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
+import static java.util.stream.Collectors.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -46,6 +49,8 @@ public abstract class ExecutableInfo extends AccessibleInfo {
private final Supplier<List<ParameterInfo>> parameters =
memoize(this::findParameters);
private final Supplier<List<ClassInfo>> exceptions =
memoize(this::findExceptions);
private final Supplier<List<AnnotationInfo<Annotation>>>
declaredAnnotations = memoize(this::findDeclaredAnnotations);
+ private final Supplier<String> shortName = memoize(this::findShortName);
+ private final Supplier<String> fullName = memoize(this::findFullName);
/**
* Constructor.
@@ -70,20 +75,6 @@ public abstract class ExecutableInfo extends AccessibleInfo {
return this;
}
- /**
- * Performs an action on every parameter that matches the specified
filter.
- *
- * @param filter The filter, can be <jk>null</jk>.
- * @param action The action to perform.
- * @return This object.
- */
- public ExecutableInfo forEachParam(Predicate<ParameterInfo> filter,
Consumer<ParameterInfo> action) {
- for (var pi : getParameters())
- if (test(filter, pi))
- action.accept(pi);
- return this;
- }
-
/**
* Performs an action on all matching parameter annotations at the
specified parameter index.
*
@@ -94,6 +85,7 @@ public abstract class ExecutableInfo extends AccessibleInfo {
* @param consumer The consumer.
* @return This object.
*/
+ @Deprecated
public final <A extends Annotation> ExecutableInfo
forEachParameterAnnotation(int index, Class<A> type, Predicate<A> predicate,
Consumer<A> consumer) {
for (var a : getParameter(index).getAnnotations())
if (type.isInstance(a))
@@ -206,21 +198,23 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
* @return The underlying executable name.
*/
public final String getFullName() {
+ return fullName.get();
+ }
+
+ private String findFullName() {
var sb = new StringBuilder(128);
- ClassInfo dc = declaringClass;
- PackageInfo pi = dc.getPackage();
+ var dc = declaringClass;
+ var pi = dc.getPackage();
if (nn(pi))
sb.append(pi.getName()).append('.');
- dc.appendNameFormatted(sb, ClassNameFormat.SHORT, true, '$',
ClassArrayFormat.BRACKETS);
+ dc.appendNameFormatted(sb, SHORT, true, '$', BRACKETS);
if (! isConstructor)
sb.append('.').append(getSimpleName());
sb.append('(');
- var params = getParameters();
- for (int i = 0; i < params.size(); i++) {
- if (i > 0)
- sb.append(',');
-
params.get(i).getParameterType().appendNameFormatted(sb, ClassNameFormat.FULL,
true, '$', ClassArrayFormat.BRACKETS);
- }
+ sb.append(getParameters().stream()
+ .map(p -> p.getParameterType().getNameFormatted(FULL,
true, '$', BRACKETS))
+ .collect(joining(","))
+ );
sb.append(')');
return sb.toString();
}
@@ -268,16 +262,11 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
* @return The underlying executable name.
*/
public final String getShortName() {
- var sb = new StringBuilder(64);
- sb.append(getSimpleName()).append('(');
- var params = getParameters();
- for (int i = 0; i < params.size(); i++) {
- if (i > 0)
- sb.append(',');
-
sb.append(params.get(i).getParameterType().getNameSimple());
- }
- sb.append(')');
- return sb.toString();
+ return shortName.get();
+ }
+
+ private String findShortName() {
+ return f("{0}({1})", getSimpleName(),
getParameters().stream().map(p ->
p.getParameterType().getNameSimple()).collect(joining(",")));
}
/**
@@ -315,17 +304,8 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
*/
public final boolean hasMatchingParameterTypes(Class<?>...args) {
var params = getParameters();
- if (params.size() != args.length)
- return false;
- for (var param : params) {
- boolean matched = false;
- for (var arg : args)
- if
(param.getParameterType().isParentOfFuzzyPrimitives(arg))
- matched = true;
- if (! matched)
- return false;
- }
- return true;
+ return params.size() == args.length
+ && params.stream().allMatch(p ->
stream(args).anyMatch(a -> p.getParameterType().isParentOfFuzzyPrimitives(a)));
}
/**
@@ -336,17 +316,8 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
*/
public final boolean hasMatchingParameterTypes(ClassInfo...args) {
var params = getParameters();
- if (params.size() != args.length)
- return false;
- for (var param : params) {
- boolean matched = false;
- for (var arg : args)
- if
(param.getParameterType().isParentOfFuzzyPrimitives(arg.inner()))
- matched = true;
- if (! matched)
- return false;
- }
- return true;
+ return params.size() == args.length
+ && params.stream().allMatch(p ->
stream(args).anyMatch(a -> p.getParameterType().isParentOfFuzzyPrimitives(a)));
}
/**
@@ -355,7 +326,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
* @param names The names to test for.
* @return <jk>true</jk> if this method has one of the names.
*/
- public final boolean hasName(Set<String> names) {
+ public final boolean hasAnyName(Collection<String> names) {
return names.contains(getSimpleName());
}
@@ -375,11 +346,8 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
* @param names The names to test for.
* @return <jk>true</jk> if this method has one of the names.
*/
- public final boolean hasName(String...names) {
- for (var n : names)
- if (getSimpleName().equals(n))
- return true;
- return false;
+ public final boolean hasAnyName(String...names) {
+ return stream(names).anyMatch(n -> eq(n, getSimpleName()));
}
/**
@@ -390,7 +358,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
*
* @return <jk>true</jk> if this executable has no parameters.
*/
- public final boolean hasNoParams() {
+ public final boolean hasNoParameters() {
return getParameterCount() == 0;
}
@@ -403,7 +371,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
* @param number The number of expected arguments.
* @return <jk>true</jk> if this executable has this number of
arguments.
*/
- public final boolean hasNumParams(int number) {
+ public final boolean hasNumParameters(int number) {
return getParameterCount() == number;
}
@@ -427,13 +395,8 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
*/
public final boolean hasParameterTypes(Class<?>...args) {
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;
- }
- return false;
+ return params.size() == args.length
+ && IntStream.range(0, args.length).allMatch(i ->
params.get(i).getParameterType().is(args[i]));
}
/**
@@ -444,13 +407,8 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
*/
public final boolean hasParameterTypes(ClassInfo...args) {
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;
- }
- return false;
+ return params.size() == args.length
+ && IntStream.range(0, args.length).allMatch(i ->
params.get(i).getParameterType().is(args[i]));
}
/**
@@ -467,7 +425,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
case DEPRECATED -> isDeprecated();
case NOT_DEPRECATED -> isNotDeprecated();
case HAS_PARAMS -> hasParameters();
- case HAS_NO_PARAMS -> hasNoParams();
+ case HAS_NO_PARAMS -> hasNoParameters();
case SYNTHETIC -> isSynthetic();
case NOT_SYNTHETIC -> !isSynthetic();
case VARARGS -> isVarArgs();
@@ -589,10 +547,6 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
return e.getTypeParameters();
}
-
//-----------------------------------------------------------------------------------------------------------------
- // Medium Priority Methods (generic type information)
-
//-----------------------------------------------------------------------------------------------------------------
-
/**
* Returns a string describing this executable, including type
parameters.
*
@@ -617,10 +571,6 @@ public abstract class ExecutableInfo extends
AccessibleInfo {
return e.toGenericString();
}
-
//-----------------------------------------------------------------------------------------------------------------
- // Low Priority Methods (advanced annotation features)
-
//-----------------------------------------------------------------------------------------------------------------
-
/**
* Returns an {@link AnnotatedType} object that represents the use of a
type to specify the receiver type of the method/constructor.
*
@@ -737,7 +687,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
// Note that due to a bug involving Enum constructors,
getGenericParameterTypes() may
// always return an empty array. This appears to be fixed in
Java 8 b75.
var ptt = e.getGenericParameterTypes();
- final Type[] genericTypes;
+ Type[] genericTypes;
if (ptt.length != ptc.length) {
// Bug in javac: generic type array excludes enclosing
instance parameter
// for inner classes with at least one generic
constructor parameter.
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 9aae734001..ca42063828 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
@@ -292,12 +292,6 @@ public class MethodInfo extends ExecutableInfo implements
Comparable<MethodInfo>
return this;
}
- @Override /* Overridden from ExecutableInfo */
- public MethodInfo forEachParam(Predicate<ParameterInfo> filter,
Consumer<ParameterInfo> action) {
- super.forEachParam(filter, action);
- return this;
- }
-
/**
* Finds the annotation of the specified type defined on this method.
*
diff --git
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/utils/ClassUtils.java
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/utils/ClassUtils.java
index fc2c72a322..eafb20be7d 100644
---
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/utils/ClassUtils.java
+++
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/utils/ClassUtils.java
@@ -429,7 +429,7 @@ public class ClassUtils {
if (s.contains("$$EnhancerBySpringCGLIB$$")) {
// Try to invoke getTargetClass() if available (Spring
specific)
Value<Class<?>> v = Value.empty();
- ClassInfo.of(c).forEachPublicMethod(m ->
m.hasName("getTargetClass") && m.hasNoParams() && m.hasReturnType(Class.class),
m -> safe(() -> v.set(m.invoke(o))));
+ ClassInfo.of(c).forEachPublicMethod(m ->
m.hasName("getTargetClass") && m.hasNoParameters() &&
m.hasReturnType(Class.class), m -> safe(() -> v.set(m.invoke(o))));
return v.isPresent() ? v.get() : c.getSuperclass();
}
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 4c28f06b03..b3c2f4e913 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
@@ -253,12 +253,12 @@ public class BeanMeta<T> {
constructor = x;
constructorArgs = new String[0];
ctx.forEachAnnotation(Beanc.class,
x.inner(), y -> ! y.properties().isEmpty(), z -> constructorArgs =
splita(z.properties()));
- if (!
x.hasNumParams(constructorArgs.length)) {
+ if (!
x.hasNumParameters(constructorArgs.length)) {
if (constructorArgs.length != 0)
- throw new
BeanRuntimeException(c, "Number of properties defined in '@Beanc' annotation
does not match number of parameters in constructor.");
+ throw new
BeanRuntimeException(c, "Number of properties defined in '@Beanc' annotation
does not match number of parameters in constructor.");
constructorArgs = new
String[x.getParameterCount()];
var i = IntegerValue.create();
- x.forEachParam(null, pi -> {
+ x.getParameters().forEach(pi ->
{
String pn =
pi.getName();
if (pn == null)
throw new
BeanRuntimeException(c, "Could not find name for parameter #{0} of constructor
''{1}''", i, x.getFullName());
@@ -276,15 +276,15 @@ public class BeanMeta<T> {
constructor = x;
constructorArgs = new String[0];
ctx.forEachAnnotation(Beanc.class, x.inner(), y -> ! y.properties().isEmpty(),
z -> constructorArgs = splita(z.properties()));
- if (!
x.hasNumParams(constructorArgs.length)) {
+ if (!
x.hasNumParameters(constructorArgs.length)) {
if
(constructorArgs.length != 0)
- throw new
BeanRuntimeException(c, "Number of properties defined in '@Beanc' annotation
does not match number of parameters in constructor.");
- constructorArgs = new
String[x.getParameterCount()];
- var i =
IntegerValue.create();
- x.forEachParam(null, y
-> {
- String pn =
y.getName();
- if (pn == null)
- throw
new BeanRuntimeException(c, "Could not find name for parameter #{0} of
constructor ''{1}''", i, x.getFullName());
+ throw new
BeanRuntimeException(c, "Number of properties defined in '@Beanc' annotation
does not match number of parameters in constructor.");
+ constructorArgs = new
String[x.getParameterCount()];
+ var i = IntegerValue.create();
+ x.getParameters().forEach(y -> {
+ String pn = y.getName();
+ if (pn == null)
+ throw new
BeanRuntimeException(c, "Could not find name for parameter #{0} of constructor
''{1}''", i, x.getFullName());
constructorArgs[i.getAndIncrement()] = pn;
});
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
index 202bece6d2..202c0fc9b3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanProxyInvocationHandler.java
@@ -75,10 +75,10 @@ public class BeanProxyInvocationHandler<T> implements
InvocationHandler {
return this.beanProps.equals(bean);
}
- if (mi.hasName("hashCode") && mi.hasNoParams())
+ if (mi.hasName("hashCode") && mi.hasNoParameters())
return Integer.valueOf(this.beanProps.hashCode());
- if (mi.hasName("toString") && mi.hasNoParams())
+ if (mi.hasName("toString") && mi.hasNoParameters())
return Json5Serializer.DEFAULT.toString(this.beanProps);
String prop = this.meta.getterProps.get(method);
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 1745a0c51a..93282bcacf 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
@@ -229,13 +229,13 @@ public class ClassMeta<T> implements Type {
for (int i = methods.size() - 1; i >= 0; i--) {
MethodInfo m = methods.get(i);
if (m.hasAnnotation(bc, ParentProperty.class)) {
- if (m.isStatic() || ! m.hasNumParams(1))
+ if (m.isStatic() || !
m.hasNumParameters(1))
throw new
ClassMetaRuntimeException(c, "@ParentProperty used on invalid method ''{0}''.
Must not be static and have one argument.", m);
m.setAccessible();
parentPropertyMethod = new
Setter.MethodSetter(m.inner());
}
if (m.hasAnnotation(bc, NameProperty.class)) {
- if (m.isStatic() || ! m.hasNumParams(1))
+ if (m.isStatic() || !
m.hasNumParameters(1))
throw new
ClassMetaRuntimeException(c, "@NameProperty used on invalid method ''{0}''.
Must not be static and have one argument.", m);
m.setAccessible();
namePropertyMethod = new
Setter.MethodSetter(m.inner());
@@ -297,7 +297,7 @@ public class ClassMeta<T> implements Type {
if (innerClass != Object.class) {
ClassInfo x = implClass == null ? ci :
ClassInfo.of(implClass);
- noArgConstructor =
x.getPublicConstructor(ConstructorInfo::hasNoParams);
+ noArgConstructor =
x.getPublicConstructor(ConstructorInfo::hasNoParameters);
}
try {
@@ -553,7 +553,7 @@ public class ClassMeta<T> implements Type {
ConstructorInfo cc = ci.getPublicConstructor(
x -> x.isVisible(v)
&& x.isNotDeprecated()
- && x.hasNumParams(isMemberClass ? 1 : 0)
+ && x.hasNumParameters(isMemberClass ? 1 : 0)
);
// @formatter:on
if (nn(cc))
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index fe47a2f8ba..62baaa93c3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -650,7 +650,7 @@ public abstract class Context implements AnnotationProvider
{
if (cci == null) {
// @formatter:off
cci = ClassInfo.of(type).getPublicConstructor(
- x -> x.hasNumParams(1)
+ x -> x.hasNumParameters(1)
&& x.getParameter(0).canAccept(this)
);
// @formatter:on
@@ -730,7 +730,7 @@ public abstract class Context implements AnnotationProvider
{
if (mi == null) {
var c = ClassInfo.of(type);
for (var ci : c.getPublicConstructors()) {
- if (ci.matches(x -> x.hasNumParams(1)
&& ! x.getParameter(0).getParameterType().is(type))) {
+ if (ci.matches(x ->
x.hasNumParameters(1) && ! x.getParameter(0).getParameterType().is(type))) {
// @formatter:off
mi = c.getPublicMethod(
x -> x.isStatic()
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
index 3782a6f758..619234c97b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
@@ -252,7 +252,7 @@ public class BeanCreator<T> {
MethodInfo m = type.getPublicMethod(
x -> x.isStatic()
&& x.isNotDeprecated()
- && x.hasNumParams(1)
+ && x.hasNumParameters(1)
&& x.getParameter(0).canAccept(builder)
&& x.hasReturnType(type)
&& x.hasNoAnnotation(BeanIgnore.class)
@@ -269,7 +269,7 @@ public class BeanCreator<T> {
MethodInfo m = type.getPublicMethod(
x -> x.isStatic()
&& x.isNotDeprecated()
- && x.hasNoParams()
+ && x.hasNoParameters()
&& x.hasReturnType(type)
&& x.hasNoAnnotation(BeanIgnore.class)
&& x.hasName("getInstance")
@@ -331,7 +331,7 @@ public class BeanCreator<T> {
if (builder == null) {
// Look for static-builder/protected-constructor pair.
Value<T> value = Value.empty();
- type.forEachDeclaredConstructor(x -> x.hasNumParams(1)
&& x.isVisible(PROTECTED), x -> {
+ type.forEachDeclaredConstructor(x ->
x.hasNumParameters(1) && x.isVisible(PROTECTED), x -> {
Class<?> pt =
x.getParameter(0).getParameterType().inner();
MethodInfo m = type.getPublicMethod(y ->
isStaticCreateMethod(y, pt));
if (nn(m)) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index a7f4bdbfb9..d03fd9fc02 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -118,7 +118,7 @@ public class BeanStore {
// @formatter:off
MethodInfo m = c.getDeclaredMethod(
x -> x.isPublic()
- && x.hasNoParams()
+ && x.hasNoParameters()
&& x.isStatic()
&& x.hasName("getInstance")
);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
index e030e76e2d..33e3859641 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
@@ -93,7 +93,7 @@ public class ResponseBeanMeta {
assertReturnType(x, Header.class,
int.class, Integer.class);
statusMethod =
ResponseBeanPropertyMeta.create(RESPONSE_STATUS, x);
} else if (x.hasAnnotation(Content.class)) {
- if (x.hasNoParams())
+ if (x.hasNoParameters())
assertReturnNotVoid(x,
Header.class);
else
assertArgType(x, Header.class,
OutputStream.class, Writer.class);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
index e08d96f895..568ff58244 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
@@ -388,7 +388,7 @@ public class ParserSet {
if (o instanceof Class) {
// Check for no-arg constructor.
- ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(ConstructorInfo::hasNoParams);
+ ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(ConstructorInfo::hasNoParameters);
if (nn(ci))
return ci.newInstance();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
index 57b776efb4..d4ceaebce8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
@@ -309,7 +309,7 @@ public class Mutaters {
// @formatter:off
return ic.getPublicMethod(
x -> x.isNotStatic()
- && x.hasNoParams()
+ && x.hasNoParameters()
&& x.getSimpleName().startsWith("to")
&& x.getSimpleName().substring(2).equalsIgnoreCase(tn)
);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index 02954ffc70..7f3217ed7a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -384,7 +384,7 @@ public class SerializerSet {
if (o instanceof Class) {
// Check for no-arg constructor.
- ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(ConstructorInfo::hasNoParams);
+ ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(ConstructorInfo::hasNoParameters);
if (nn(ci))
return ci.newInstance();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
index 706fb3b673..f0065c2395 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
@@ -267,7 +267,7 @@ public class VarResolverSession {
if (! containsVars(c))
return o;
Set c2 = null;
- var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() && x.hasNoParams());
+ var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.hasNoParameters());
if (ci != null) {
c2 = (Set)ci.inner().newInstance();
} else {
@@ -287,7 +287,7 @@ public class VarResolverSession {
if (! containsVars(c))
return o;
List c2 = null;
- var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() && x.hasNoParams());
+ var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.hasNoParameters());
if (ci != null) {
c2 = (List)ci.inner().newInstance();
} else {
@@ -307,7 +307,7 @@ public class VarResolverSession {
if (! containsVars(m))
return o;
Map m2 = null;
- var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() && x.hasNoParams());
+ var ci =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.hasNoParameters());
if (ci != null) {
m2 = (Map)ci.inner().newInstance();
} else {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoListSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoListSwap.java
index 8fd8e55075..6b5d4cf536 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoListSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoListSwap.java
@@ -130,7 +130,7 @@ public class AutoListSwap<T> extends ObjectSwap<T,List<?>> {
mi.isNotDeprecated()
&& mi.isNotStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(SWAP_METHOD_NAMES)
+ && mi.hasAnyName(SWAP_METHOD_NAMES)
&& mi.hasReturnTypeParent(List.class)
&& mi.hasFuzzyParameterTypes(BeanSession.class)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
@@ -153,7 +153,7 @@ public class AutoListSwap<T> extends ObjectSwap<T,List<?>> {
mi.isNotDeprecated()
&& mi.isStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(UNSWAP_METHOD_NAMES)
+ && mi.hasAnyName(UNSWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class,
rt.inner())
&& mi.hasReturnTypeParent(ci)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoMapSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoMapSwap.java
index 82d2245825..6884b98c47 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoMapSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoMapSwap.java
@@ -130,7 +130,7 @@ public class AutoMapSwap<T> extends ObjectSwap<T,Map<?,?>> {
mi.isNotDeprecated()
&& mi.isNotStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(SWAP_METHOD_NAMES)
+ && mi.hasAnyName(SWAP_METHOD_NAMES)
&& mi.hasReturnTypeParent(Map.class)
&& mi.hasFuzzyParameterTypes(BeanSession.class)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
@@ -153,7 +153,7 @@ public class AutoMapSwap<T> extends ObjectSwap<T,Map<?,?>> {
mi.isNotDeprecated()
&& mi.isStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(UNSWAP_METHOD_NAMES)
+ && mi.hasAnyName(UNSWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class,
rt.inner())
&& mi.hasReturnTypeParent(ci)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoNumberSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoNumberSwap.java
index cda1e5ea84..d5598718b2 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoNumberSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoNumberSwap.java
@@ -156,7 +156,7 @@ public class AutoNumberSwap<T> extends ObjectSwap<T,Number>
{
&& mi.isNotStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
&& (rt.isChildOf(Number.class) || (rt.isPrimitive() &&
rt.isAny(int.class, short.class, long.class, float.class, double.class,
byte.class)))
- && mi.hasName(SWAP_METHOD_NAMES)
+ && mi.hasAnyName(SWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
// @formatter:on
@@ -178,7 +178,7 @@ public class AutoNumberSwap<T> extends ObjectSwap<T,Number>
{
mi.isNotDeprecated()
&& mi.isStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(UNSWAP_METHOD_NAMES)
+ && mi.hasAnyName(UNSWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class,
rt.inner())
&& mi.hasReturnTypeParent(ci)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoObjectSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoObjectSwap.java
index 2afe8dfba4..5f6dad2a8f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoObjectSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/AutoObjectSwap.java
@@ -132,7 +132,7 @@ public class AutoObjectSwap<T> extends ObjectSwap<T,Object>
{
mi.isNotDeprecated()
&& mi.isNotStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(SWAP_METHOD_NAMES)
+ && mi.hasAnyName(SWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
// @formatter:on
@@ -154,7 +154,7 @@ public class AutoObjectSwap<T> extends ObjectSwap<T,Object>
{
mi.isNotDeprecated()
&& mi.isStatic()
&& mi.isVisible(bc.getBeanMethodVisibility())
- && mi.hasName(UNSWAP_METHOD_NAMES)
+ && mi.hasAnyName(UNSWAP_METHOD_NAMES)
&& mi.hasFuzzyParameterTypes(BeanSession.class,
rt.inner())
&& mi.hasReturnTypeParent(ci)
&& mi.hasNoAnnotation(bc, BeanIgnore.class);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
index a94d491219..cc103eed10 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
@@ -110,7 +110,7 @@ public class BuilderSwap<T,B> {
// @formatter:off
var cc = pci.getPublicConstructor(
x -> x.isVisible(cVis)
- && x.hasNumParams(1)
+ && x.hasNumParameters(1)
&&
x.getParameter(0).getParameterType().isChildOf(Builder.class)
);
// @formatter:on
@@ -144,7 +144,7 @@ public class BuilderSwap<T,B> {
// @formatter:off
return c.getDeclaredMethod(
x -> x.isNotStatic()
- && x.hasNoParams()
+ && x.hasNoParameters()
&& (!x.hasReturnType(void.class))
&& x.hasName("build")
);
@@ -165,7 +165,7 @@ public class BuilderSwap<T,B> {
private static boolean hasConstructorThatTakesType(ClassInfo c,
ClassInfo argType) {
// @formatter:off
return nn(c.getPublicConstructor(
- x -> x.hasNumParams(1)
+ x -> x.hasNumParameters(1)
&& x.hasParameterTypes(argType)
));
// @formatter:on
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 31b5ecfbe4..95a71641ac 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
@@ -54,7 +54,7 @@ public class SurrogateSwap<T,F> extends ObjectSwap<T,F> {
public static List<SurrogateSwap<?,?>> findObjectSwaps(Class<?> c,
BeanContext bc) {
List<SurrogateSwap<?,?>> l = new LinkedList<>();
var ci = ClassInfo.of(c);
- ci.forEachPublicConstructor(x -> x.hasNoAnnotation(bc,
BeanIgnore.class) && x.hasNumParams(1) && x.isPublic(), x -> {
+ ci.forEachPublicConstructor(x -> x.hasNoAnnotation(bc,
BeanIgnore.class) && x.hasNumParameters(1) && x.isPublic(), x -> {
var pt = x.getParameter(0).getParameterType().inner();
if (! pt.equals(c.getDeclaringClass())) {
// Find the unswap method if there is one.
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
index a254ad2a3b..c9471f0cbf 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
@@ -270,7 +270,7 @@ public class ResponseContent implements HttpEntity {
// Some HTTP responses have no body, so
try to create these beans if they've got no-arg constructors.
if (t == null && !
type.is(String.class)) {
- ConstructorInfo c =
type.getInfo().getPublicConstructor(ConstructorInfo::hasNoParams);
+ ConstructorInfo c =
type.getInfo().getPublicConstructor(ConstructorInfo::hasNoParameters);
if (nn(c)) {
try {
return
c.<T>newInstance();
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index c2d02c298c..bd45f89004 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -1952,7 +1952,7 @@ public class RestRequest extends BeanSession implements
HttpUriRequest, Configur
c = ci.getPublicConstructor(x
-> x.hasParameterTypes(String.class, Throwable.class));
if (nn(c))
throw
c.<Throwable>newInstance(nn(message) ? message :
response.getContent().asString(), null);
- c =
ci.getPublicConstructor(ConstructorInfo::hasNoParams);
+ c =
ci.getPublicConstructor(ConstructorInfo::hasNoParameters);
if (nn(c))
throw
c.<Throwable>newInstance();
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
index aa3996e9ac..821bcff8e7 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
@@ -441,7 +441,7 @@ public class ClassInfo_Test extends TestBase {
}
@Test void getPublicNoArgConstructor() {
- check("E1()",
e1.getPublicConstructor(ConstructorInfo::hasNoParams));
+ check("E1()",
e1.getPublicConstructor(ConstructorInfo::hasNoParameters));
}
@Test void getConstructor() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ConstructorInfoTest.java
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ConstructorInfoTest.java
index e99f7c4d58..93cac4180f 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ConstructorInfoTest.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ConstructorInfoTest.java
@@ -107,7 +107,7 @@ class ConstructorInfoTest extends TestBase {
}
static ClassInfo b = ClassInfo.of(B.class);
static ConstructorInfo
- b_c1 = b.getPublicConstructor(ConstructorInfo::hasNoParams),
+ b_c1 = b.getPublicConstructor(ConstructorInfo::hasNoParameters),
b_c2 = b.getPublicConstructor(x ->
x.hasParameterTypes(String.class)),
b_c3 = b.getDeclaredConstructor(x ->
x.hasParameterTypes(int.class)),
b_c4 = b.getPublicConstructor(x ->
x.hasParameterTypes(String.class, String.class));
@@ -129,14 +129,9 @@ class ConstructorInfoTest extends TestBase {
}
@Test void forEachParam_fluentChaining() {
- // Test that forEachParam returns ConstructorInfo for fluent
chaining
- ConstructorInfo result = b_c2.forEachParam(x -> true, x -> {});
- assertSame(b_c2, result);
- assertInstanceOf(ConstructorInfo.class, result);
-
- // Test fluent chaining works
+ // Test stream operations on parameters
int[] count = {0};
- b_c4.forEachParam(x -> true, x -> count[0]++);
+ b_c4.getParameters().stream().filter(x -> true).forEach(x ->
count[0]++);
assertEquals(2, count[0]);
}
}
\ No newline at end of file
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 4ead7db8c8..b0bc7c9f10 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
@@ -72,12 +72,12 @@ class ExecutableInfo_Test extends TestBase {
static ClassInfo a = ClassInfo.of(A.class);
@Test void isConstructor() {
-
assertTrue(a.getPublicConstructor(ConstructorInfo::hasNoParams).isConstructor());
+
assertTrue(a.getPublicConstructor(ConstructorInfo::hasNoParameters).isConstructor());
assertFalse(a.getPublicMethod(x ->
x.hasName("foo")).isConstructor());
}
@Test void getDeclaringClass() {
- check("A",
a.getPublicConstructor(ConstructorInfo::hasNoParams).getDeclaringClass());
+ check("A",
a.getPublicConstructor(ConstructorInfo::hasNoParameters).getDeclaringClass());
check("A", a.getPublicMethod(x ->
x.hasName("foo")).getDeclaringClass());
}
@@ -93,9 +93,9 @@ class ExecutableInfo_Test extends TestBase {
}
static ClassInfo b = ClassInfo.of(B.class);
static ExecutableInfo
- b_c1 = b.getPublicConstructor(ConstructorInfo::hasNoParams),
+ b_c1 = b.getPublicConstructor(ConstructorInfo::hasNoParameters),
b_c2 = b.getPublicConstructor(x ->
x.hasParameterTypes(String.class)),
- b_m1 = b.getPublicMethod(x -> x.hasName("m") &&
x.hasNoParams()),
+ b_m1 = b.getPublicMethod(x -> x.hasName("m") &&
x.hasNoParameters()),
b_m2 = b.getPublicMethod(x -> x.hasName("m") &&
x.hasParameterTypes(String.class))
;
@@ -114,17 +114,17 @@ class ExecutableInfo_Test extends TestBase {
}
@Test void hasNoParams() {
- assertEquals(true, b_c1.hasNoParams());
- assertEquals(false, b_c2.hasNoParams());
- assertEquals(true, b_m1.hasNoParams());
- assertEquals(false, b_m2.hasNoParams());
+ assertEquals(true, b_c1.hasNoParameters());
+ assertEquals(false, b_c2.hasNoParameters());
+ assertEquals(true, b_m1.hasNoParameters());
+ assertEquals(false, b_m2.hasNoParameters());
}
@Test void hasNumParams() {
- assertEquals(false, b_c1.hasNumParams(1));
- assertEquals(true, b_c2.hasNumParams(1));
- assertEquals(false, b_m1.hasNumParams(1));
- assertEquals(true, b_m2.hasNumParams(1));
+ assertEquals(false, b_c1.hasNumParameters(1));
+ assertEquals(true, b_c2.hasNumParameters(1));
+ assertEquals(false, b_m1.hasNumParameters(1));
+ assertEquals(true, b_m2.hasNumParameters(1));
}
@Test void getParams() {
@@ -158,7 +158,7 @@ class ExecutableInfo_Test extends TestBase {
@Test void getParam_indexOutOfBounds_noCache() {
var b2 = ClassInfo.of(B.class);
- assertThrowsWithMessage(IndexOutOfBoundsException.class,
"Invalid index '0'. No parameters.",
()->b2.getPublicConstructor(ConstructorInfo::hasNoParams).getParameter(0));
+ assertThrowsWithMessage(IndexOutOfBoundsException.class,
"Invalid index '0'. No parameters.",
()->b2.getPublicConstructor(ConstructorInfo::hasNoParameters).getParameter(0));
assertThrowsWithMessage(IndexOutOfBoundsException.class,
"Invalid index '-1'. Parameter count: 1", ()->b2.getPublicConstructor(x ->
x.hasParameterTypes(String.class)).getParameter(-1));
assertThrowsWithMessage(IndexOutOfBoundsException.class,
"Invalid index '1'. Parameter count: 1", ()->b2.getPublicConstructor(x ->
x.hasParameterTypes(String.class)).getParameter(1));
}
@@ -246,12 +246,12 @@ class ExecutableInfo_Test extends TestBase {
}
static ClassInfo c = ClassInfo.of(C.class);
static ConstructorInfo
- c_c1=c.getPublicConstructor(ConstructorInfo::hasNoParams),
+ c_c1=c.getPublicConstructor(ConstructorInfo::hasNoParameters),
c_c2=c.getPublicConstructor(x ->
x.hasParameterTypes(String.class)),
c_c3=c.getPublicConstructor(x -> x.hasParameterTypes(int.class))
;
static MethodInfo
- c_m1=c.getPublicMethod(x -> x.hasName("m") && x.hasNoParams()),
+ c_m1=c.getPublicMethod(x -> x.hasName("m") &&
x.hasNoParameters()),
c_m2=c.getPublicMethod(x -> x.hasName("m") &&
x.hasParameterTypes(String.class)),
c_m3=c.getPublicMethod(x -> x.hasName("m") &&
x.hasParameterTypes(int.class))
;
@@ -302,7 +302,7 @@ class ExecutableInfo_Test extends TestBase {
}
static ClassInfo d = ClassInfo.of(D.class);
static ExecutableInfo
- d_c=d.getPublicConstructor(ConstructorInfo::hasNoParams),
+ d_c=d.getPublicConstructor(ConstructorInfo::hasNoParameters),
d_m=d.getPublicMethod(x -> x.hasName("m"))
;
@@ -509,37 +509,37 @@ class ExecutableInfo_Test extends TestBase {
static ClassInfo x2 = ClassInfo.of(X.class);
@Test void getFullName_method() {
-
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X.foo()",
x2.getPublicMethod(x -> x.hasName("foo") && x.hasNoParams()).getFullName());
+
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X.foo()",
x2.getPublicMethod(x -> x.hasName("foo") && x.hasNoParameters()).getFullName());
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X.foo(java.lang.String)",
x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasParameterTypes(String.class)).getFullName());
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X.foo(java.util.Map<java.lang.String,java.lang.Object>)",
x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasParameterTypes(Map.class)).getFullName());
}
@Test void getFullName_constructor() {
-
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X()",
x2.getPublicConstructor(ConstructorInfo::hasNoParams).getFullName());
+
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X()",
x2.getPublicConstructor(ConstructorInfo::hasNoParameters).getFullName());
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X(java.lang.String)",
x2.getPublicConstructor(x -> x.hasParameterTypes(String.class)).getFullName());
assertEquals("org.apache.juneau.common.reflect.ExecutableInfo_Test$X(java.util.Map<java.lang.String,java.lang.Object>)",
x2.getPublicConstructor(x -> x.hasParameterTypes(Map.class)).getFullName());
}
@Test void getShortName_method() {
- assertEquals("foo()", x2.getPublicMethod(x -> x.hasName("foo")
&& x.hasNoParams()).getShortName());
+ assertEquals("foo()", x2.getPublicMethod(x -> x.hasName("foo")
&& x.hasNoParameters()).getShortName());
assertEquals("foo(String)", x2.getPublicMethod(x ->
x.hasName("foo") && x.hasParameterTypes(String.class)).getShortName());
assertEquals("foo(Map)", x2.getPublicMethod(x ->
x.hasName("foo") && x.hasParameterTypes(Map.class)).getShortName());
}
@Test void getShortName_constructor() {
- assertEquals("X()",
x2.getPublicConstructor(ConstructorInfo::hasNoParams).getShortName());
+ assertEquals("X()",
x2.getPublicConstructor(ConstructorInfo::hasNoParameters).getShortName());
assertEquals("X(String)", x2.getPublicConstructor(x ->
x.hasParameterTypes(String.class)).getShortName());
assertEquals("X(Map)", x2.getPublicConstructor(x ->
x.hasParameterTypes(Map.class)).getShortName());
}
@Test void getSimpleName_method() {
- assertEquals("foo", x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasNoParams()).getSimpleName());
+ assertEquals("foo", x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasNoParameters()).getSimpleName());
assertEquals("foo", x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasParameterTypes(String.class)).getSimpleName());
assertEquals("foo", x2.getPublicMethod(x -> x.hasName("foo") &&
x.hasParameterTypes(Map.class)).getSimpleName());
}
@Test void getSimpleName_constructor() {
- assertEquals("X",
x2.getPublicConstructor(ConstructorInfo::hasNoParams).getSimpleName());
+ assertEquals("X",
x2.getPublicConstructor(ConstructorInfo::hasNoParameters).getSimpleName());
assertEquals("X", x2.getPublicConstructor(x ->
x.hasParameterTypes(String.class)).getSimpleName());
assertEquals("X", x2.getPublicConstructor(x ->
x.hasParameterTypes(Map.class)).getSimpleName());
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
index ad4bb84573..5593941bc0 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/MethodInfo_Test.java
@@ -415,14 +415,9 @@ class MethodInfo_Test extends TestBase {
}
@Test void forEachParam_fluentChaining() {
- // Test that forEachParam returns MethodInfo for fluent chaining
- MethodInfo result = g_a1b.forEachParam(x -> true, x -> {});
- assertSame(g_a1b, result);
- assertInstanceOf(MethodInfo.class, result);
-
- // Test fluent chaining works
+ // Test stream operations on parameters
int[] count = {0};
- g_a1c.forEachParam(x -> true, x -> count[0]++);
+ g_a1c.getParameters().stream().filter(x -> true).forEach(x ->
count[0]++);
assertEquals(2, count[0]);
}
}
\ No newline at end of file