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 3aed910189 org.apache.juneau.common.reflect API improvements
3aed910189 is described below
commit 3aed910189aa54c0ae00805caf0b483fac3a4e5c
Author: James Bognar <[email protected]>
AuthorDate: Fri Nov 21 18:04:06 2025 -0500
org.apache.juneau.common.reflect API improvements
---
.../juneau/assertions/FluentAnyAssertion.java | 3 +-
.../juneau/assertions/FluentObjectAssertion.java | 3 +-
.../juneau/junit/bct/BasicBeanConverter.java | 5 +-
.../juneau/common/reflect/AnnotationInfo.java | 14 +++-
.../juneau/common/reflect/AnnotationProvider.java | 94 +++++++++++++++++-----
.../juneau/common/reflect/ExecutableInfo.java | 7 +-
.../juneau/common/reflect/ReflectionUtils.java | 4 +-
.../org/apache/juneau/common/utils/ClassUtils.java | 19 ++---
.../main/java/org/apache/juneau/BeanContext.java | 13 +--
.../src/main/java/org/apache/juneau/BeanMeta.java | 47 +++++------
.../java/org/apache/juneau/BeanPropertyMeta.java | 52 ++++++------
.../apache/juneau/BeanProxyInvocationHandler.java | 7 +-
.../main/java/org/apache/juneau/BeanRegistry.java | 7 +-
.../src/main/java/org/apache/juneau/ClassMeta.java | 83 ++++++++++---------
.../src/main/java/org/apache/juneau/Context.java | 25 +++---
.../juneau/InvalidDataConversionException.java | 5 +-
.../annotation/TargetedAnnotationCBuilder.java | 4 +-
.../annotation/TargetedAnnotationMBuilder.java | 4 +-
.../annotation/TargetedAnnotationMFBuilder.java | 6 +-
.../annotation/TargetedAnnotationMFCBuilder.java | 4 +-
.../annotation/TargetedAnnotationTMBuilder.java | 4 +-
.../annotation/TargetedAnnotationTMFBuilder.java | 6 +-
.../annotation/TargetedAnnotationTMFCBuilder.java | 4 +-
.../apache/juneau/cp/BeanCreateMethodFinder.java | 7 +-
.../java/org/apache/juneau/cp/BeanCreator.java | 5 +-
.../main/java/org/apache/juneau/cp/BeanStore.java | 3 +-
.../apache/juneau/html/HtmlBeanPropertyMeta.java | 13 +--
.../org/apache/juneau/httppart/HttpPartSchema.java | 8 +-
.../juneau/httppart/bean/RequestBeanMeta.java | 3 +-
.../juneau/httppart/bean/ResponseBeanMeta.java | 3 +-
.../org/apache/juneau/internal/ClassUtils2.java | 7 +-
.../java/org/apache/juneau/internal/Utils2.java | 8 +-
.../java/org/apache/juneau/parser/ParserSet.java | 7 +-
.../java/org/apache/juneau/reflect/Mutaters.java | 9 ++-
.../juneau/serializer/SerializerSession.java | 19 ++---
.../apache/juneau/serializer/SerializerSet.java | 7 +-
.../org/apache/juneau/svl/VarResolverSession.java | 19 ++---
.../java/org/apache/juneau/swap/BuilderSwap.java | 23 +++---
.../java/org/apache/juneau/swap/ObjectSwap.java | 15 ++--
.../java/org/apache/juneau/swap/SurrogateSwap.java | 7 +-
.../java/org/apache/juneau/swaps/TemporalSwap.java | 7 +-
41 files changed, 353 insertions(+), 237 deletions(-)
diff --git
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
index 0f77042d81..9c4363b075 100644
---
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
+++
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.assertions;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import java.io.*;
@@ -502,6 +503,6 @@ public class FluentAnyAssertion<T,R> extends
FluentObjectAssertion<T,R> {
Object o = orElse(null);
if (o == null || c.isInstance(o))
return c.cast(o);
- throw new BasicAssertionError(MSG_objectWasNotType,
ClassInfo.of(c).getNameFull(), o.getClass());
+ throw new BasicAssertionError(MSG_objectWasNotType,
info(c).getNameFull(), o.getClass());
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
index 2d170d21d1..8b4fe22c14 100644
---
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
+++
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.assertions;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
@@ -504,7 +505,7 @@ public class FluentObjectAssertion<T,R> extends
FluentAssertion<R> {
*/
public R isType(Class<?> parent) throws AssertionError {
assertArgNotNull("parent", parent);
- if (!ClassInfo.of(value()).isChildOf(parent))
+ if (! info(value()).isChildOf(parent))
throw error(MSG_unexpectedType, cn(parent), cn(value));
return returns();
}
diff --git
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/BasicBeanConverter.java
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/BasicBeanConverter.java
index 8f362967d1..e0028c7cc8 100644
---
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/BasicBeanConverter.java
+++
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/BasicBeanConverter.java
@@ -18,6 +18,7 @@ package org.apache.juneau.junit.bct;
import static java.util.Optional.*;
import static java.util.stream.Collectors.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
@@ -827,7 +828,7 @@ public class BasicBeanConverter implements BeanConverter {
if (sizer.isPresent()) return ((Sizer)sizer.get()).size(o2,
this);
// Try to find size() or length() method via reflection
- var sizeResult = ClassInfo.of(c).getPublicMethods().stream()
+ var sizeResult = info(c).getPublicMethods().stream()
.filter(m -> ! m.hasParameters())
.filter(m -> m.hasAnyName("size", "length"))
.filter(m -> m.getReturnType().isAny(int.class,
Integer.class))
@@ -840,7 +841,7 @@ public class BasicBeanConverter implements BeanConverter {
if (canListify(o)) return listify(o).size();
// Try to find isEmpty() method via reflection
- var isEmpty = ClassInfo.of(o).getPublicMethods().stream()
+ var isEmpty = info(o).getPublicMethods().stream()
.filter(m -> ! m.hasParameters())
.filter(m -> m.hasName("isEmpty"))
.filter(m -> m.getReturnType().isAny(boolean.class,
Boolean.class))
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 86a97eee06..063af2383e 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
@@ -16,16 +16,26 @@
*/
package org.apache.juneau.common.reflect;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
+import java.lang.annotation.*;
+import java.lang.reflect.*;
+import java.util.*;
+import java.util.function.*;
+import java.util.stream.*;
+
+import org.apache.juneau.common.utils.*;
+
import java.lang.annotation.*;
import java.util.*;
import java.util.function.*;
import org.apache.juneau.common.annotation.*;
+import org.apache.juneau.common.utils.*;
/**
* Encapsulates information about an annotation instance and the element it's
declared on.
@@ -91,7 +101,7 @@ public class AnnotationInfo<T extends Annotation> {
final int rank;
private T a; // Effectively final
- private final Supplier<List<MethodInfo>> methods = memoize(() ->
stream(a.annotationType().getMethods()).map(m ->
MethodInfo.of(ClassInfo.of(a.annotationType()), m)).toList());
+private final Supplier<List<MethodInfo>> methods = memoize(() ->
stream(a.annotationType().getMethods()).map(m ->
MethodInfo.of(info(a.annotationType()), m)).toList());
/**
* Constructor.
@@ -321,7 +331,7 @@ public class AnnotationInfo<T extends Annotation> {
var jm = new LinkedHashMap<String, Object>();
jm.put(s(annotatable.getAnnotatableType()),
annotatable.getLabel());
var ja = new LinkedHashMap<String, Object>();
- var ca = ClassInfo.of(a.annotationType());
+ var ca = info(a.annotationType());
ca.getDeclaredMethods().stream().forEach(x -> {
try {
var v = x.invoke(a);
diff --git
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
index 3a75917113..540639f7da 100644
---
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
+++
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/AnnotationProvider.java
@@ -16,11 +16,12 @@
*/
package org.apache.juneau.common.reflect;
+import static org.apache.juneau.common.reflect.AnnotationTraversal.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
-import static org.apache.juneau.common.reflect.AnnotationTraversal.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -549,6 +550,7 @@ public class AnnotationProvider {
* @param traversals The traversal options (what to search and order).
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>>
findTopDown(Class<A> type, ClassInfo c, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("c", c);
@@ -566,6 +568,7 @@ public class AnnotationProvider {
* @param traversals The traversal options (what to search and order).
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
findTopDown(ClassInfo c, AnnotationTraversal... traversals) {
assertArgNotNull("c", c);
return rstream(cache.get(null, c, traversals));
@@ -635,12 +638,19 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>> find(Class<A>
type, MethodInfo m, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("m", m);
return cache.get(type, m, traversals).stream();
}
+ public <A extends Annotation> List<AnnotationInfo<A>> find2(Class<A>
type, MethodInfo m, AnnotationTraversal... traversals) {
+ assertArgNotNull("type", type);
+ assertArgNotNull("m", m);
+ return cache.get(type, m, traversals);
+ }
+
/**
* Streams all annotations from a method using configurable traversal
options, without filtering by annotation type.
*
@@ -663,11 +673,17 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>> find(MethodInfo m,
AnnotationTraversal... traversals) {
assertArgNotNull("m", m);
return cache.get(null, m, traversals).stream();
}
+ public List<AnnotationInfo<? extends Annotation>> find2(MethodInfo m,
AnnotationTraversal... traversals) {
+ assertArgNotNull("m", m);
+ return cache.get(null, m, traversals);
+ }
+
/**
* Streams annotations from a method using configurable traversal
options in parent-first order.
*
@@ -681,6 +697,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>>
findTopDown(Class<A> type, MethodInfo m, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("m", m);
@@ -698,6 +715,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
findTopDown(MethodInfo m, AnnotationTraversal... traversals) {
assertArgNotNull("m", m);
return rstream(cache.get(null, m, traversals));
@@ -741,7 +759,7 @@ public class AnnotationProvider {
* @return <jk>true</jk> if the annotation is found, <jk>false</jk>
otherwise.
*/
public <A extends Annotation> boolean has(Class<A> type, MethodInfo m,
AnnotationTraversal... traversals) {
- return find(type, m, traversals).findFirst().isPresent();
+ return ! find2(type, m, traversals).isEmpty();
}
/**
@@ -783,12 +801,19 @@ public class AnnotationProvider {
* <br>Valid values: {@link AnnotationTraversal#SELF SELF}, {@link
AnnotationTraversal#MATCHING_PARAMETERS MATCHING_PARAMETERS}, {@link
AnnotationTraversal#PARAMETER_TYPE PARAMETER_TYPE}
* @return A stream of {@link AnnotationInfo} objects in
child-to-parent order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>> find(Class<A>
type, ParameterInfo p, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("p", p);
return cache.get(type, p, traversals).stream();
}
+ public <A extends Annotation> List<AnnotationInfo<A>> find2(Class<A>
type, ParameterInfo p, AnnotationTraversal... traversals) {
+ assertArgNotNull("type", type);
+ assertArgNotNull("p", p);
+ return cache.get(type, p, traversals);
+ }
+
/**
* Streams annotations from a parameter using configurable traversal
options in parent-to-child order.
*
@@ -824,6 +849,7 @@ public class AnnotationProvider {
* <br>Valid values: {@link AnnotationTraversal#SELF SELF}, {@link
AnnotationTraversal#MATCHING_PARAMETERS MATCHING_PARAMETERS}, {@link
AnnotationTraversal#PARAMETER_TYPE PARAMETER_TYPE}
* @return A stream of {@link AnnotationInfo} objects in
parent-to-child order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>>
findTopDown(Class<A> type, ParameterInfo p, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("p", p);
@@ -864,11 +890,17 @@ public class AnnotationProvider {
* <br>Valid values: {@link AnnotationTraversal#SELF SELF}, {@link
AnnotationTraversal#MATCHING_PARAMETERS MATCHING_PARAMETERS}, {@link
AnnotationTraversal#PARAMETER_TYPE PARAMETER_TYPE}
* @return A stream of {@link AnnotationInfo} objects in
child-to-parent order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>> find(ParameterInfo
p, AnnotationTraversal... traversals) {
assertArgNotNull("p", p);
return cache.get(null, p, traversals).stream();
}
+ public List<AnnotationInfo<? extends Annotation>> find2(ParameterInfo
p, AnnotationTraversal... traversals) {
+ assertArgNotNull("p", p);
+ return cache.get(null, p, traversals);
+ }
+
/**
* Streams all annotations from a parameter using configurable
traversal options in parent-first order, without filtering by annotation type.
*
@@ -882,6 +914,7 @@ public class AnnotationProvider {
* <br>Valid values: {@link AnnotationTraversal#SELF SELF}, {@link
AnnotationTraversal#MATCHING_PARAMETERS MATCHING_PARAMETERS}, {@link
AnnotationTraversal#PARAMETER_TYPE PARAMETER_TYPE}
* @return A stream of {@link AnnotationInfo} objects in
parent-to-child order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
findTopDown(ParameterInfo p, AnnotationTraversal... traversals) {
assertArgNotNull("p", p);
return rstream(cache.get(null, p, traversals));
@@ -924,7 +957,7 @@ public class AnnotationProvider {
* @return <jk>true</jk> if the annotation is found, <jk>false</jk>
otherwise.
*/
public <A extends Annotation> boolean has(Class<A> type, ParameterInfo
p, AnnotationTraversal... traversals) {
- return find(type, p, traversals).findFirst().isPresent();
+ return ! find2(type, p, traversals).isEmpty();
}
/**
@@ -946,12 +979,19 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>> find(Class<A>
type, FieldInfo f, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("f", f);
return cache.get(type, f, traversals).stream();
}
+ public <A extends Annotation> List<AnnotationInfo<A>> find2(Class<A>
type, FieldInfo f, AnnotationTraversal... traversals) {
+ assertArgNotNull("type", type);
+ assertArgNotNull("f", f);
+ return cache.get(type, f, traversals);
+ }
+
/**
* Streams all annotations from a field using configurable traversal
options, without filtering by annotation type.
*
@@ -970,11 +1010,17 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>> find(FieldInfo f,
AnnotationTraversal... traversals) {
assertArgNotNull("f", f);
return cache.get(null, f, traversals).stream();
}
+ public List<AnnotationInfo<? extends Annotation>> find2(FieldInfo f,
AnnotationTraversal... traversals) {
+ assertArgNotNull("f", f);
+ return cache.get(null, f, traversals);
+ }
+
/**
* Streams annotations from a field using configurable traversal
options in parent-first order.
*
@@ -988,6 +1034,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>>
findTopDown(Class<A> type, FieldInfo f, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("f", f);
@@ -1005,6 +1052,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
findTopDown(FieldInfo f, AnnotationTraversal... traversals) {
assertArgNotNull("f", f);
return rstream(cache.get(null, f, traversals));
@@ -1042,7 +1090,7 @@ public class AnnotationProvider {
* @return <jk>true</jk> if the annotation is found, <jk>false</jk>
otherwise.
*/
public <A extends Annotation> boolean has(Class<A> type, FieldInfo f,
AnnotationTraversal... traversals) {
- return find(type, f, traversals).findFirst().isPresent();
+ return ! find2(type, f, traversals).isEmpty();
}
/**
@@ -1064,10 +1112,10 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
- public <A extends Annotation> Stream<AnnotationInfo<A>> find(Class<A>
type, ConstructorInfo c, AnnotationTraversal... traversals) {
+ public <A extends Annotation> List<AnnotationInfo<A>> find(Class<A>
type, ConstructorInfo c, AnnotationTraversal... traversals) {
assertArgNotNull("type", type);
assertArgNotNull("c", c);
- return cache.get(type, c, traversals).stream();
+ return cache.get(type, c, traversals);
}
/**
@@ -1088,11 +1136,17 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects. Never
<jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
find(ConstructorInfo c, AnnotationTraversal... traversals) {
assertArgNotNull("c", c);
return cache.get(null, c, traversals).stream();
}
+ public List<AnnotationInfo<? extends Annotation>> find2(ConstructorInfo
c, AnnotationTraversal... traversals) {
+ assertArgNotNull("c", c);
+ return cache.get(null, c, traversals);
+ }
+
/**
* Streams annotations from a constructor using configurable traversal
options in parent-first order.
*
@@ -1106,6 +1160,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public <A extends Annotation> Stream<AnnotationInfo<A>>
findTopDown(Class<A> type, ConstructorInfo c, AnnotationTraversal...
traversals) {
assertArgNotNull("type", type);
assertArgNotNull("c", c);
@@ -1123,6 +1178,7 @@ public class AnnotationProvider {
* @param traversals The traversal options.
* @return A stream of {@link AnnotationInfo} objects in parent-first
order. Never <jk>null</jk>.
*/
+ @Deprecated
public Stream<AnnotationInfo<? extends Annotation>>
findTopDown(ConstructorInfo c, AnnotationTraversal... traversals) {
assertArgNotNull("c", c);
return rstream(cache.get(null, c, traversals));
@@ -1160,7 +1216,7 @@ public class AnnotationProvider {
* @return <jk>true</jk> if the annotation is found, <jk>false</jk>
otherwise.
*/
public <A extends Annotation> boolean has(Class<A> type,
ConstructorInfo c, AnnotationTraversal... traversals) {
- return find(type, c, traversals).findFirst().isPresent();
+ return ! find(type, c, traversals).isEmpty();
}
//-----------------------------------------------------------------------------------------------------------------
@@ -1172,18 +1228,18 @@ public class AnnotationProvider {
var ci = ClassInfo.of(c);
return annotationMap == null ? liste() :
annotationMap.find(ci.inner()).map(a -> ai(ci, a)).toList();
}
- if (o instanceof Method m) {
- var mi = MethodInfo.of(m);
- return annotationMap == null ? liste() :
annotationMap.find(mi.inner()).map(a -> ai(mi, a)).toList();
- }
- if (o instanceof Field f) {
- var fi = FieldInfo.of(f);
- return annotationMap == null ? liste() :
annotationMap.find(fi.inner()).map(a -> ai(fi, a)).toList();
- }
- if (o instanceof Constructor c) {
- var ci = ConstructorInfo.of(c);
- return annotationMap == null ? liste() :
annotationMap.find(ci.inner()).map(a -> ai(ci, a)).toList();
- }
+ if (o instanceof Method m) {
+ var mi = info(m);
+ return annotationMap == null ? liste() :
annotationMap.find(mi.inner()).map(a -> ai(mi, a)).toList();
+ }
+ if (o instanceof Field f) {
+ var fi = info(f);
+ return annotationMap == null ? liste() :
annotationMap.find(fi.inner()).map(a -> ai(fi, a)).toList();
+ }
+ if (o instanceof Constructor c) {
+ var ci = info(c);
+ return annotationMap == null ? liste() :
annotationMap.find(ci.inner()).map(a -> ai(ci, a)).toList();
+ }
throw unsupportedOp();
}
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 cfb9346605..5062c31fd2 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
@@ -18,6 +18,7 @@ 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.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
@@ -754,9 +755,9 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
} else {
genericTypes = ptt;
}
- return IntStream.range(0, rp.length)
- .mapToObj(i -> new ParameterInfo(this, rp[i], i,
ClassInfo.of(ptc[i], genericTypes[i])))
- .toList();
+ return IntStream.range(0, rp.length)
+ .mapToObj(i -> new ParameterInfo(this, rp[i], i,
ClassInfo.of(ptc[i], genericTypes[i])))
+ .toList();
}
private String findFullName() {
diff --git
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ReflectionUtils.java
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ReflectionUtils.java
index 79acd404e9..6e21cfb089 100644
---
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ReflectionUtils.java
+++
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ReflectionUtils.java
@@ -32,7 +32,7 @@ public class ReflectionUtils {
* @param o The class. Can be <jk>null</jk>.
* @return The {@link ClassInfo} wrapper, or <jk>null</jk> if the input
is <jk>null</jk>.
*/
- public static final ClassInfo info(Class o) {
+ public static final ClassInfo info(Class<?> o) {
return ClassInfo.of(o);
}
@@ -72,7 +72,7 @@ public class ReflectionUtils {
* @param o The constructor. Can be <jk>null</jk>.
* @return The {@link ConstructorInfo} wrapper, or <jk>null</jk> if the
input is <jk>null</jk>.
*/
- public static final ConstructorInfo info(Constructor o) {
+ public static final ConstructorInfo info(Constructor<?> o) {
return ConstructorInfo.of(o);
}
}
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 859c335f01..721e711aa0 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.common.utils;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -289,9 +290,9 @@ public class ClassUtils {
if (! needsShuffle)
return args;
var params = new Object[paramTypes.length];
- for (var i = 0; i < paramTypes.length; i++) {
- var pt =
ClassInfo.of(paramTypes[i]).getWrapperIfPrimitive();
- for (var arg : args) {
+ for (var i = 0; i < paramTypes.length; i++) {
+ var pt = info(paramTypes[i]).getWrapperIfPrimitive();
+ for (var arg : args) {
if (nn(arg) && pt.isParentOf(arg.getClass())) {
params[i] = arg;
break;
@@ -428,9 +429,9 @@ public class ClassUtils {
// Pattern: com.example.MyClass$$EnhancerBySpringCGLIB$$abc123
if (s.contains("$$EnhancerBySpringCGLIB$$")) {
// Try to invoke getTargetClass() if available (Spring
specific)
- Value<Class<?>> v = Value.empty();
- ClassInfo.of(c).getPublicMethods().stream().filter(m ->
m.hasName("getTargetClass") && m.getParameterCount() == 0 &&
m.hasReturnType(Class.class)).forEach(m -> safe(() -> v.set(m.invoke(o))));
- return v.isPresent() ? v.get() : c.getSuperclass();
+ Value<Class<?>> v = Value.empty();
+ info(c).getPublicMethods().stream().filter(m ->
m.hasName("getTargetClass") && m.getParameterCount() == 0 &&
m.hasReturnType(Class.class)).forEach(m -> safe(() -> v.set(m.invoke(o))));
+ return v.isPresent() ? v.get() : c.getSuperclass();
}
// Javassist Proxy: Created by Javassist ProxyFactory
@@ -507,9 +508,9 @@ public class ClassUtils {
* Never <jk>null</jk>.
*/
public static Stream<Annotation> streamRepeated(Annotation a) {
- try {
- var ci = ClassInfo.of(a.annotationType());
- var mi = ci.getRepeatedAnnotationMethod();
+ try {
+ var ci = info(a.annotationType());
+ var mi = ci.getRepeatedAnnotationMethod();
if (nn(mi)) {
Annotation[] annotations = mi.invoke(a);
return Arrays.stream(annotations);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 625a01bd92..f9a92856b3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -17,6 +17,7 @@
package org.apache.juneau;
import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.reflect.Visibility.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
@@ -3520,9 +3521,9 @@ public class BeanContext extends Context {
swaps.forEach(x -> {
if (x instanceof ObjectSwap) {
_swaps.add((ObjectSwap<?,?>)x);
- } else {
- var ci = ClassInfo.of((Class<?>)x);
- if (ci.isChildOf(ObjectSwap.class))
+ } else {
+ var ci = info((Class<?>)x);
+ if (ci.isChildOf(ObjectSwap.class))
_swaps.add(BeanCreator.of(ObjectSwap.class).type(ci).run());
else if (ci.isChildOf(Surrogate.class))
_swaps.addAll(SurrogateSwap.findObjectSwaps(ci.inner(), this));
@@ -4189,9 +4190,9 @@ public class BeanContext extends Context {
for (var p2 : notBeanPackagePrefixes)
if (p.getName().startsWith(p2))
return true;
- }
- var ci = ClassInfo.of(c);
- for (var exclude : notBeanClassesArray)
+ }
+ var ci = info(c);
+ for (var exclude : notBeanClassesArray)
if (ci.isChildOf(exclude))
return true;
return false;
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 fd860da6b3..b5dc2adcac 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
@@ -18,6 +18,7 @@ package org.apache.juneau;
import static org.apache.juneau.BeanMeta.MethodType.*;
import static org.apache.juneau.common.reflect.AnnotationTraversal.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.PredicateUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
@@ -82,10 +83,10 @@ public class BeanMeta<T> {
this.propertyName = propertyName;
this.methodType = type;
this.method = method;
- if (type == MethodType.SETTER)
- this.type =
ClassInfo.of(method.getParameterTypes()[0]);
- else
- this.type =
ClassInfo.of(method.getReturnType());
+ if (type == MethodType.SETTER)
+ this.type = info(method.getParameterTypes()[0]);
+ else
+ this.type = info(method.getReturnType());
}
@Override /* Overridden from Object */
@@ -255,7 +256,7 @@ public class BeanMeta<T> {
throw bex(c, "Multiple
instances of '@Beanc' found.");
constructor = x;
constructorArgs = new String[0];
- ap.find(Beanc.class, x).map(x2 ->
x2.inner().properties()).filter(StringUtils::isNotBlank).forEach(z ->
constructorArgs = splita(z));
+ ap.find(Beanc.class, x).stream().map(x2
->
x2.inner().properties()).filter(StringUtils::isNotBlank).findFirst().ifPresent(z
-> constructorArgs = splita(z));
if (!
x.hasNumParameters(constructorArgs.length)) {
if (constructorArgs.length != 0)
throw bex(c, "Number of
properties defined in '@Beanc' annotation does not match number of parameters
in constructor.");
@@ -278,7 +279,7 @@ public class BeanMeta<T> {
throw bex(c, "Multiple
instances of '@Beanc' found.");
constructor = x;
constructorArgs = new String[0];
- ap.find(Beanc.class, x).map(x2
-> x2.inner().properties()).filter(y -> isNotEmpty(y)).forEach(z ->
constructorArgs = splita(z));
+ ap.find(Beanc.class,
x).stream().map(x2 -> x2.inner().properties()).filter(y ->
isNotEmpty(y)).findFirst().ifPresent(z -> constructorArgs = splita(z));
if (!
x.hasNumParameters(constructorArgs.length)) {
if
(constructorArgs.length != 0)
throw bex(c, "Number of
properties defined in '@Beanc' annotation does not match number of parameters
in constructor.");
@@ -360,9 +361,9 @@ public class BeanMeta<T> {
} else /* Use 'better' introspection */ {
- findBeanFields(ctx, c2, stopClass,
fVis).forEach(x -> {
- String name =
findPropertyName(FieldInfo.of(x));
- if (nn(name)) {
+ findBeanFields(ctx, c2, stopClass,
fVis).forEach(x -> {
+ String name = findPropertyName(info(x));
+ if (nn(name)) {
if (!
normalProps.containsKey(name))
normalProps.put(name, BeanPropertyMeta.builder(beanMeta, name));
normalProps.get(name).setField(x);
@@ -374,17 +375,17 @@ public class BeanMeta<T> {
// Iterate through all the getters.
bms.forEach(x -> {
String pn = x.propertyName;
- Method m = x.method;
- MethodInfo mi =
MethodInfo.of(m);
- if (!
normalProps.containsKey(pn))
+ Method m = x.method;
+ MethodInfo mi = info(m);
+ if (! normalProps.containsKey(pn))
normalProps.put(pn, new
BeanPropertyMeta.Builder(beanMeta, pn));
BeanPropertyMeta.Builder bpm =
normalProps.get(pn);
if (x.methodType == GETTER) {
// Two getters. Pick
the best.
if (nn(bpm.getter)) {
- if (!
ap.has(Beanp.class, mi) && ap.has(Beanp.class, MethodInfo.of(bpm.getter)))
- m =
bpm.getter; // @Beanp annotated method takes precedence.
+ if (!
ap.has(Beanp.class, mi) && ap.has(Beanp.class, info(bpm.getter)))
+ m = bpm.getter;
// @Beanp annotated method takes precedence.
else if
(m.getName().startsWith("is") && bpm.getter.getName().startsWith("get"))
m =
bpm.getter; // getX() overrides isX().
@@ -566,8 +567,8 @@ public class BeanMeta<T> {
static final Collection<Field> findBeanFields(BeanContext ctx, Class<?>
c, Class<?> stopClass, Visibility v) {
List<Field> l = new LinkedList<>();
- boolean noIgnoreTransients = ! ctx.isIgnoreTransientFields();
- forEachClass(ClassInfo.of(c), stopClass, c2 -> {
+ boolean noIgnoreTransients = ! ctx.isIgnoreTransientFields();
+ forEachClass(info(c), stopClass, c2 -> {
// @formatter:off
c2.getDeclaredFields().stream()
.filter(x -> x.isNotStatic()
@@ -595,8 +596,8 @@ public class BeanMeta<T> {
List<BeanMethod> l = new LinkedList<>();
var ap = ctx.getAnnotationProvider();
- forEachClass(ClassInfo.of(c), stopClass, c2 -> {
- for (var m : c2.getDeclaredMethods()) {
+ forEachClass(info(c), stopClass, c2 -> {
+ for (var m : c2.getDeclaredMethods()) {
if (m.isStatic() || m.isBridge() ||
m.getParameterCount() > 2 || m.getMatchingMethods().stream().anyMatch(m2 ->
ap.has(BeanIgnore.class, m2, SELF, MATCHING_METHODS)))
continue;
Transient t = m.getMatchingMethods().stream()
@@ -707,8 +708,8 @@ public class BeanMeta<T> {
static final Field findInnerBeanField(BeanContext ctx, Class<?> c,
Class<?> stopClass, String name) {
boolean noIgnoreTransients = ! ctx.isIgnoreTransientFields();
- Value<Field> value = Value.empty();
- forEachClass(ClassInfo.of(c), stopClass, c2 -> {
+ Value<Field> value = Value.empty();
+ forEachClass(info(c), stopClass, c2 -> {
// @formatter:off
c2.getDeclaredField(
x -> x.isNotStatic()
@@ -803,9 +804,9 @@ public class BeanMeta<T> {
List<ParameterInfo> params = method.getParameters();
var ap = ctx.getAnnotationProvider();
- // Walk up the class hierarchy looking for a matching parent
method with @Beanp or @Name
- var currentClass = ClassInfo.of(c);
- ClassInfo sc = currentClass.getSuperclass();
+ // Walk up the class hierarchy looking for a matching parent method
with @Beanp or @Name
+ var currentClass = info(c);
+ ClassInfo sc = currentClass.getSuperclass();
while (nn(sc) && ! sc.is(stopClass) && ! sc.is(Object.class)) {
// Look for a method with the same signature in the
parent class
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index c41bc801f2..89c8d3d370 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -147,9 +147,9 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
if (isVoid(c))
c = s.impl();
if (isVoid(c))
- return null;
- var ci = ClassInfo.of(c);
- if (ci.isChildOf(ObjectSwap.class)) {
+ return null;
+ var ci = info(c);
+ if (ci.isChildOf(ObjectSwap.class)) {
ObjectSwap ps =
BeanCreator.of(ObjectSwap.class).type(c).run();
if (nn(ps.forMediaTypes()))
throw unsupportedOp("TODO - Media types
on swaps not yet supported on bean properties.");
@@ -221,9 +221,9 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
canRead |= (nn(field) || nn(getter));
canWrite |= (nn(field ) || nn(setter));
- var ifi = innerField == null ? null :
FieldInfo.of(innerField);
- var gi = getter == null ? null : MethodInfo.of(getter);
- var si = setter == null ? null : MethodInfo.of(setter);
+ var ifi = innerField == null ? null : info(innerField);
+ var gi = getter == null ? null : info(getter);
+ var si = setter == null ? null : info(setter);
if (nn(innerField)) {
List<Beanp> lp = list();
@@ -329,9 +329,9 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
}
}
if (nn(field)) {
- if (isDyna) {
- if (!
ClassInfo.of(field.getType()).isChildOf(Map.class))
- return false;
+ if (isDyna) {
+ if (!
info(field.getType()).isChildOf(Map.class))
+ return false;
} else {
if (! ci.isChildOf(field.getType()))
return false;
@@ -644,10 +644,10 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
public <A extends Annotation> BeanPropertyMeta
forEachAnnotation(Class<A> a, Predicate<A> filter, Consumer<A> action) {
BeanContext bc = beanContext;
if (nn(a)) {
- if (nn(field)) bc.getAnnotationProvider().find(a,
FieldInfo.of(field)).map(x -> x.inner()).filter(filter).forEach(action);
- if (nn(getter)) bc.getAnnotationProvider().find(a,
MethodInfo.of(getter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x ->
x.inner()).filter(filter).forEach(action);
- if (nn(setter)) bc.getAnnotationProvider().find(a,
MethodInfo.of(setter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x ->
x.inner()).filter(filter).forEach(action);
- }
+ if (nn(field)) bc.getAnnotationProvider().find(a,
info(field)).map(x -> x.inner()).filter(filter).forEach(action);
+ if (nn(getter)) bc.getAnnotationProvider().find(a,
info(getter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x ->
x.inner()).filter(filter).forEach(action);
+ if (nn(setter)) bc.getAnnotationProvider().find(a,
info(setter), SELF, MATCHING_METHODS, RETURN_TYPE, PACKAGE).map(x ->
x.inner()).filter(filter).forEach(action);
+ }
return this;
}
@@ -686,10 +686,10 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
List<A> l = new LinkedList<>();
BeanContext bc = beanContext;
var ap = bc.getAnnotationProvider();
- var fi = field == null ? null : FieldInfo.of(field);
- var gi = getter == null ? null : MethodInfo.of(getter);
- var si = setter == null ? null : MethodInfo.of(setter);
- if (a == null)
+ var fi = field == null ? null : info(field);
+ var gi = getter == null ? null : info(getter);
+ var si = setter == null ? null : info(setter);
+ if (a == null)
return l;
rstream(ap.find(a,
getBeanMeta().getClassMeta().getInfo())).forEach(x -> l.add(x.inner()));
if (nn(field)) {
@@ -698,23 +698,23 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
}
if (nn(gi)) {
// Walk up the inheritance hierarchy for the getter
method
- forEachParentMethod(getter, parentGetter -> {
- ap.find(a, MethodInfo.of(parentGetter), SELF,
MATCHING_METHODS, RETURN_TYPE, PACKAGE).forEach(x -> l.add(x.inner()));
- });
+ forEachParentMethod(getter, parentGetter -> {
+ ap.find(a, info(parentGetter), SELF, MATCHING_METHODS,
RETURN_TYPE, PACKAGE).forEach(x -> l.add(x.inner()));
+ });
ap.find(a, gi, SELF, MATCHING_METHODS, RETURN_TYPE,
PACKAGE).forEach(x -> l.add(x.inner()));
rstream(ap.find(a, gi.getReturnType())).forEach(x ->
l.add(x.inner()));
}
if (nn(setter)) {
// Walk up the inheritance hierarchy for the setter
method
- forEachParentMethod(setter, parentSetter -> {
- ap.find(a, MethodInfo.of(parentSetter), SELF,
MATCHING_METHODS, RETURN_TYPE, PACKAGE).forEach(x -> l.add(x.inner()));
- });
+ forEachParentMethod(setter, parentSetter -> {
+ ap.find(a, info(parentSetter), SELF, MATCHING_METHODS,
RETURN_TYPE, PACKAGE).forEach(x -> l.add(x.inner()));
+ });
ap.find(a, si, SELF, MATCHING_METHODS, RETURN_TYPE,
PACKAGE).forEach(x -> l.add(x.inner()));
rstream(ap.find(a,
info(setter.getReturnType()))).forEach(x -> l.add(x.inner()));
}
- if (nn(extraKeys)) {
- MethodInfo eki = MethodInfo.of(extraKeys);
- // Walk up the inheritance hierarchy for the extraKeys
method
+ if (nn(extraKeys)) {
+ MethodInfo eki = info(extraKeys);
+ // Walk up the inheritance hierarchy for the extraKeys method
forEachParentMethod(extraKeys, parentExtraKeys -> {
ap.find(a, info(parentExtraKeys), SELF,
MATCHING_METHODS, RETURN_TYPE, PACKAGE).forEach(x -> l.add(x.inner()));
});
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 7b356dbeca..7be205cf29 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -57,9 +58,9 @@ public class BeanProxyInvocationHandler<T> implements
InvocationHandler {
* Implemented to handle the method called.
*/
@Override /* Overridden from InvocationHandler */
- public Object invoke(Object proxy, Method method, Object[] args) {
- var mi = MethodInfo.of(method);
- if (mi.hasName("equals") &&
mi.hasParameterTypes(java.lang.Object.class)) {
+public Object invoke(Object proxy, Method method, Object[] args) {
+ var mi = info(method);
+ if (mi.hasName("equals") &&
mi.hasParameterTypes(java.lang.Object.class)) {
Object arg = args[0];
if (arg == null)
return false;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
index 1fd2b96c87..f8a1068048 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -125,9 +126,9 @@ public class BeanRegistry {
private void addClass(Class<?> c) {
try {
- if (nn(c)) {
- var ci = ClassInfo.of(c);
- if (ci.isChildOf(Collection.class)) {
+ if (nn(c)) {
+ var ci = info(c);
+ if (ci.isChildOf(Collection.class)) {
Collection<?> cc =
BeanCreator.of(Collection.class).type(c).run();
cc.forEach(x -> {
if (x instanceof Class)
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 140dac6f90..c0856761c2 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
@@ -17,6 +17,7 @@
package org.apache.juneau;
import static org.apache.juneau.ClassMeta.ClassCategory.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.PredicateUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
@@ -112,8 +113,8 @@ public class ClassMeta<T> implements Type {
this.childUnswapMap = new ConcurrentHashMap<>();
}
- Class<T> c = innerClass;
- ci = ClassInfo.of(c);
+ Class<T> c = innerClass;
+ ci = info(c);
if (c.isPrimitive()) {
if (c == Boolean.TYPE)
@@ -293,9 +294,9 @@ public class ClassMeta<T> implements Type {
implClass = (Class<? extends
T>)marshalledFilter.getImplClass();
}
- if (innerClass != Object.class) {
- ClassInfo x = implClass == null ? ci :
ClassInfo.of(implClass);
- noArgConstructor = x.getPublicConstructor(cons
-> cons.getParameterCount() == 0).orElse(null);
+ if (innerClass != Object.class) {
+ ClassInfo x = implClass == null ? ci : info(implClass);
+ noArgConstructor = x.getPublicConstructor(cons ->
cons.getParameterCount() == 0).orElse(null);
}
try {
@@ -440,8 +441,8 @@ public class ClassMeta<T> implements Type {
private ObjectSwap<T,?> createSwap(Swap s) {
Class<?> c = s.value();
if (ClassUtils.isVoid(c))
- c = s.impl();
- ClassInfo ci = ClassInfo.of(c);
+ c = s.impl();
+ ClassInfo ci = info(c);
if (ci.isChildOf(ObjectSwap.class)) {
ObjectSwap ps =
BeanCreator.of(ObjectSwap.class).type(c).run();
@@ -461,33 +462,35 @@ public class ClassMeta<T> implements Type {
throw new ClassMetaRuntimeException(c, "Invalid swap
class ''{0}'' specified. Must extend from ObjectSwap or Surrogate.", c);
}
- private BeanFilter findBeanFilter(BeanContext bc) {
- try {
- List<Bean> ba = list();
-
rstream(bc.getAnnotationProvider().find(Bean.class, info)).forEach(x ->
ba.add(x.inner()));
- if (! ba.isEmpty())
- return
BeanFilter.create(innerClass).applyAnnotations(ba).build();
- } catch (Exception e) {
- throw toRex(e);
- }
- return null;
+ private BeanFilter findBeanFilter(BeanContext bc) {
+ try {
+ var ba =
rstream(bc.getAnnotationProvider().find(Bean.class, info))
+ .map(AnnotationInfo::inner)
+ .toList();
+ if (! ba.isEmpty())
+ return
BeanFilter.create(innerClass).applyAnnotations(ba).build();
+ } catch (Exception e) {
+ throw toRex(e);
}
+ return null;
+ }
private ClassMeta<?> findClassMeta(Class<?> c) {
return beanContext.getClassMeta(c, false);
}
- private MarshalledFilter findMarshalledFilter(BeanContext bc) {
- try {
- List<Marshalled> ba = list();
-
bc.getAnnotationProvider().findTopDown(Marshalled.class, info).map(x ->
x.inner()).forEach(x -> ba.add(x));
- if (! ba.isEmpty())
- return
MarshalledFilter.create(innerClass).applyAnnotations(ba).build();
- } catch (Exception e) {
- throw toRex(e);
- }
- return null;
+ private MarshalledFilter findMarshalledFilter(BeanContext bc) {
+ try {
+ var ba =
rstream(bc.getAnnotationProvider().find(Marshalled.class, info))
+ .map(AnnotationInfo::inner)
+ .toList();
+ if (! ba.isEmpty())
+ return
MarshalledFilter.create(innerClass).applyAnnotations(ba).build();
+ } catch (Exception e) {
+ throw toRex(e);
}
+ return null;
+ }
private ClassMeta<?>[] findParameters() {
return beanContext.findParameters(innerClass,
innerClass);
@@ -546,7 +549,7 @@ public class ClassMeta<T> implements Type {
*/
@SuppressWarnings({ "unchecked" })
protected static <T> Constructor<? extends T>
findNoArgConstructor(Class<?> c, Visibility v) {
- ClassInfo ci = ClassInfo.of(c);
+ ClassInfo ci = info(c);
if (ci.isAbstract())
return null;
boolean isMemberClass = ci.isMemberClass() && ci.isNotStatic();
@@ -629,9 +632,9 @@ public class ClassMeta<T> implements Type {
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
ClassMeta(Class<T> innerClass, BeanContext beanContext,
ObjectSwap<T,?>[] swaps, ObjectSwap<?,?>[] childSwaps) {
- this.innerClass = innerClass;
- this.info = ClassInfo.of(innerClass);
- this.beanContext = beanContext;
+ this.innerClass = innerClass;
+ this.info = info(innerClass);
+ this.beanContext = beanContext;
String notABeanReason = null;
try (SimpleLock x = lock.write()) {
@@ -687,9 +690,9 @@ public class ClassMeta<T> implements Type {
*/
@SuppressWarnings("unchecked")
ClassMeta(ClassMeta<?>[] args) {
- this.innerClass = (Class<T>)Object[].class;
- this.info = ClassInfo.of(innerClass);
- this.args = args;
+ this.innerClass = (Class<T>)Object[].class;
+ this.info = info(innerClass);
+ this.args = args;
this.implClass = null;
this.childSwaps = null;
this.childSwapMap = null;
@@ -985,9 +988,9 @@ public class ClassMeta<T> implements Type {
try {
if (nn(example))
return jpSession.parse(example, this);
- if (nn(exampleMethod))
- return
(T)MethodInfo.of(exampleMethod).invokeLenient(null, session);
- if (nn(exampleField))
+ if (nn(exampleMethod))
+ return (T)info(exampleMethod).invokeLenient(null,
session);
+ if (nn(exampleField))
return (T)exampleField.get(null);
if (isCollection()) {
@@ -1061,9 +1064,9 @@ public class ClassMeta<T> implements Type {
* @return The no-arg constructor for this class, or <jk>null</jk> if
it does not exist.
*/
public ConstructorInfo getImplClassConstructor(Visibility conVis) {
- if (nn(implClass))
- return
ClassInfo.of(implClass).getNoArgConstructor(conVis).orElse(null);
- return null;
+ if (nn(implClass))
+ return info(implClass).getNoArgConstructor(conVis).orElse(null);
+ return null;
}
/**
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 6dff83f4b3..4d949ca3ad 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
@@ -17,6 +17,7 @@
package org.apache.juneau;
import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -647,9 +648,9 @@ public abstract class Context {
private ConstructorInfo getContextConstructor() {
ConstructorInfo cci = CONTEXT_CONSTRUCTORS.get(type);
if (cci == null) {
- // @formatter:off
- cci = ClassInfo.of(type).getPublicConstructor(
- x -> x.hasNumParameters(1)
+ // @formatter:off
+ cci = info(type).getPublicConstructor(
+ x -> x.hasNumParameters(1)
&& x.getParameter(0).canAccept(this)
).orElseThrow(() -> rex("Public constructor not
found: {0}({1})", cn(type), cn(this)));
// @formatter:on
@@ -671,13 +672,13 @@ public abstract class Context {
private static AnnotationWorkList traverse(AnnotationWorkList
work, Object x) {
AnnotationProvider ap = AnnotationProvider.INSTANCE;
CollectionUtils.traverse(x, y -> {
- if (x instanceof Class<?> x2)
-
work.add(ap.findTopDown(ClassInfo.of(x2)).filter(CONTEXT_APPLY_FILTER));
- else if (x instanceof ClassInfo x2)
+ if (x instanceof Class<?> x2)
+
work.add(ap.findTopDown(info(x2)).filter(CONTEXT_APPLY_FILTER));
+ else if (x instanceof ClassInfo x2)
work.add(ap.findTopDown(x2).filter(CONTEXT_APPLY_FILTER));
- else if (x instanceof Method x2)
-
work.add(ap.findTopDown(MethodInfo.of(x2)).filter(CONTEXT_APPLY_FILTER));
- else if (x instanceof MethodInfo x2)
+ else if (x instanceof Method x2)
+
work.add(ap.findTopDown(info(x2)).filter(CONTEXT_APPLY_FILTER));
+ else if (x instanceof MethodInfo x2)
work.add(ap.findTopDown(x2).filter(CONTEXT_APPLY_FILTER));
else
illegalArg("Invalid type passed to
applyAnnotations: {0}", cn(x));
@@ -725,9 +726,9 @@ public abstract class Context {
public static Builder createBuilder(Class<? extends Context> type) {
try {
MethodInfo mi = BUILDER_CREATE_METHODS.get(type);
- if (mi == null) {
- var c = ClassInfo.of(type);
- for (var ci : c.getPublicConstructors()) {
+ if (mi == null) {
+ var c = info(type);
+ for (var ci : c.getPublicConstructors()) {
if (ci.hasNumParameters(1) && !
ci.getParameter(0).getParameterType().is(type)) {
// @formatter:off
mi = c.getPublicMethod(
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/InvalidDataConversionException.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/InvalidDataConversionException.java
index 1c8f7b4a65..03ef7d2fb5 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/InvalidDataConversionException.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/InvalidDataConversionException.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
import java.text.*;
@@ -41,11 +42,11 @@ public class InvalidDataConversionException extends
BasicRuntimeException {
private static final long serialVersionUID = 1L;
private static String name(Class<?> c) {
- return ClassInfo.of(c).getNameFull();
+ return info(c).getNameFull();
}
private static String name(Object o) {
- return ClassInfo.of(o).getNameFull();
+ return info(o).getNameFull();
}
private static String value(Object o) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationCBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationCBuilder.java
index 746583f766..518735c505 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationCBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationCBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationCBuilder<B extends
TargetedAnnotationCBuilder<B>>
*/
public B on(Constructor<?>...value) {
for (var v : value)
- on(ConstructorInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMBuilder.java
index d03e18a315..2f74499ec6 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationMBuilder<B extends
TargetedAnnotationMBuilder<B>>
*/
public B on(Method...value) {
for (var v : value)
- on(MethodInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFBuilder.java
index 7638c5462e..8e6d86998a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationMFBuilder<B extends
TargetedAnnotationMFBuilder<B
*/
public B on(Field...value) {
for (var v : value)
- on(FieldInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
@@ -60,7 +62,7 @@ public class TargetedAnnotationMFBuilder<B extends
TargetedAnnotationMFBuilder<B
*/
public B on(Method...value) {
for (var v : value)
- on(MethodInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFCBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFCBuilder.java
index 05f076e552..f2b773fafc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFCBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationMFCBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -46,7 +48,7 @@ public class TargetedAnnotationMFCBuilder extends
TargetedAnnotationMFBuilder<Ta
*/
public TargetedAnnotationMFCBuilder on(Constructor<?>...value) {
for (var v : value)
- on(ConstructorInfo.of(v).getFullName());
+ on(info(v).getFullName());
return this;
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMBuilder.java
index 0a62a6b4e6..89fc895fa5 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationTMBuilder<B extends
TargetedAnnotationTMBuilder<B
*/
public B on(Method...value) {
for (var v : value)
- on(MethodInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFBuilder.java
index 8e8f41f270..a4cd36d75e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationTMFBuilder<B extends
TargetedAnnotationTMFBuilder
*/
public B on(Field...value) {
for (var v : value)
- on(FieldInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
@@ -60,7 +62,7 @@ public class TargetedAnnotationTMFBuilder<B extends
TargetedAnnotationTMFBuilder
*/
public B on(Method...value) {
for (var v : value)
- on(MethodInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFCBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFCBuilder.java
index fb47c64698..90e7c9f8fa 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFCBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/TargetedAnnotationTMFCBuilder.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.annotation;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -48,7 +50,7 @@ public class TargetedAnnotationTMFCBuilder<B extends
TargetedAnnotationTMFCBuild
*/
public B on(Constructor<?>...value) {
for (var v : value)
- on(ConstructorInfo.of(v).getFullName());
+ on(info(v).getFullName());
return asThis();
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
index dc6e6a9554..4012fecc6a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreateMethodFinder.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.cp;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.AssertionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -144,9 +145,9 @@ public class BeanCreateMethodFinder<T> {
*/
public BeanCreateMethodFinder<T> find(Predicate<MethodInfo> filter) {
// @formatter:off
- if (method == null) {
- ClassInfo.of(resourceClass).getPublicMethod(
- x -> x.isNotDeprecated()
+ if (method == null) {
+ info(resourceClass).getPublicMethod(
+ x -> x.isNotDeprecated()
&& x.hasReturnType(beanType)
&& ! x.hasAnnotation(BeanIgnore.class)
&& filter.test(x)
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 32c5459aab..e7070ef522 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
@@ -17,6 +17,7 @@
package org.apache.juneau.cp;
import static java.util.stream.Collectors.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.reflect.Visibility.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -160,7 +161,7 @@ public class BeanCreator<T> {
* @param store The bean store creating this creator.
*/
protected BeanCreator(Class<T> type, BeanStore store) {
- this.type = ClassInfo.of(type);
+ this.type = info(type);
this.store = BeanStore.of(store, store.outer.orElse(null));
}
@@ -390,7 +391,7 @@ public class BeanCreator<T> {
* @return This object.
*/
public BeanCreator<T> type(Class<?> value) {
- type = opt(value).map(x -> ClassInfo.of(x)).orElse(null);
+ type = opt(value).map(x -> info(x)).orElse(null);
return this;
}
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 b7d8b3f8cf..e5d4ccd4f7 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
@@ -19,6 +19,7 @@ package org.apache.juneau.cp;
import static java.util.stream.Collectors.*;
import static java.util.stream.Collectors.toList;
import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
@@ -113,7 +114,7 @@ public class BeanStore {
if (type == null || type == BeanStore.class)
return new BeanStore(this);
- var c = ClassInfo.of(type);
+ var c = info(type);
// @formatter:off
Optional<BeanStore> result = c.getDeclaredMethod(
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
index 528a8020f2..ca2a3213bd 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.html;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
import org.apache.juneau.*;
@@ -80,12 +81,12 @@ public class HtmlBeanPropertyMeta extends
ExtendedBeanPropertyMeta {
super(bpm);
Builder b = new Builder();
- if (nn(bpm.getInnerField()))
- annotationProvider.find(Html.class,
FieldInfo.of(bpm.getInnerField())).map(x -> x.inner()).forEach(x ->
b.findHtmlInfo(x));
- if (nn(bpm.getGetter()))
- annotationProvider.find(Html.class,
MethodInfo.of(bpm.getGetter())).map(x -> x.inner()).forEach(x ->
b.findHtmlInfo(x));
- if (nn(bpm.getSetter()))
- annotationProvider.find(Html.class,
MethodInfo.of(bpm.getSetter())).map(x -> x.inner()).forEach(x ->
b.findHtmlInfo(x));
+ if (nn(bpm.getInnerField()))
+ annotationProvider.find(Html.class,
info(bpm.getInnerField())).map(x -> x.inner()).forEach(x -> b.findHtmlInfo(x));
+ if (nn(bpm.getGetter()))
+ annotationProvider.find(Html.class,
info(bpm.getGetter())).map(x -> x.inner()).forEach(x -> b.findHtmlInfo(x));
+ if (nn(bpm.getSetter()))
+ annotationProvider.find(Html.class,
info(bpm.getSetter())).map(x -> x.inner()).forEach(x -> b.findHtmlInfo(x));
this.format = b.format;
this.noTables = b.noTables;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 5a87bff3de..e62f1f2eee 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -17,6 +17,7 @@
package org.apache.juneau.httppart;
import static java.util.Collections.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.list;
@@ -84,6 +85,9 @@ import org.apache.juneau.common.reflect.*;
* </ul>
*/
public class HttpPartSchema {
+
+ private static final AnnotationProvider AP =
AnnotationProvider.INSTANCE;
+
/**
* Builder class.
*/
@@ -2547,8 +2551,8 @@ public class HttpPartSchema {
}
Builder apply(Class<? extends Annotation> c,
java.lang.reflect.Type t) {
- if (t instanceof Class<?>) {
- AnnotationProvider.INSTANCE.findTopDown(c,
ClassInfo.of((Class<?>)t)).map(AnnotationInfo::inner).forEach(this::apply);
+ if (t instanceof Class<?> c2) {
+ rstream(AP.find(c, info(c2))).forEach(x ->
apply(x.inner()));
} else if (Value.isType(t)) {
apply(c, getValueParameterType(t));
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
index 7d6aee1e72..763af27661 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.httppart.bean;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -109,7 +110,7 @@ public class RequestBeanMeta {
* @return Metadata about the class, or <jk>null</jk> if class not
annotated with {@link Request}.
*/
public static RequestBeanMeta create(Class<?> c, AnnotationWorkList
annotations) {
- var ci = ClassInfo.of(c);
+ var ci = info(c);
if (! ci.hasAnnotation(Request.class))
return null;
return new
RequestBeanMeta.Builder(annotations).apply(c).build();
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 e6fd406307..ba1662c328 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
@@ -17,6 +17,7 @@
package org.apache.juneau.httppart.bean;
import static org.apache.juneau.annotation.InvalidAnnotationException.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -158,7 +159,7 @@ public class ResponseBeanMeta {
* @return Metadata about the class, or <jk>null</jk> if class not
annotated with {@link Response}.
*/
public static ResponseBeanMeta create(Type t, AnnotationWorkList
annotations) {
- var ci = ClassInfo.of(t).unwrap(Value.class, Optional.class);
+ var ci = info(t).unwrap(Value.class, Optional.class);
if (! ci.hasAnnotation(Response.class))
return null;
var b = new Builder(annotations);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils2.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils2.java
index 77565f1c9f..92f2ea2b14 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils2.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils2.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.internal;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
import org.apache.juneau.common.reflect.*;
@@ -52,9 +53,9 @@ public class ClassUtils2 {
if (! needsShuffle)
return args;
Object[] params = new Object[paramTypes.length];
- for (int i = 0; i < paramTypes.length; i++) {
- var pt =
ClassInfo.of(paramTypes[i]).getWrapperIfPrimitive();
- for (var arg : args) {
+ for (int i = 0; i < paramTypes.length; i++) {
+ var pt = info(paramTypes[i]).getWrapperIfPrimitive();
+ for (var arg : args) {
if (nn(arg) && pt.isParentOf(arg.getClass())) {
params[i] = arg;
break;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
index 3232a14ebe..f3fc53dab5 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/Utils2.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.internal;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
+
import java.util.*;
import java.util.concurrent.*;
@@ -43,9 +45,9 @@ public class Utils2 extends Utils {
if (o == null)
return null;
Map<String,MethodInfo> methods =
PROPERTIES_METHODS.get(o.getClass());
- if (methods == null) {
- var ci = ClassInfo.of(o);
- var methods2 = new LinkedHashMap<String,MethodInfo>();
+ if (methods == null) {
+ var ci = info(o);
+ var methods2 = new LinkedHashMap<String,MethodInfo>();
do {
String cname = ci.getNameShort();
ci.getDeclaredMethod(x ->
x.hasName("properties"))
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 d61ed13759..572bb0aaa0 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
@@ -17,6 +17,7 @@
package org.apache.juneau.parser;
import static java.util.stream.Collectors.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -387,9 +388,9 @@ public class ParserSet {
private Object createBuilder(Object o) {
if (o instanceof Class) {
- // Check for no-arg constructor.
- ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(c -> c.getParameterCount() ==
0).orElse(null);
- if (nn(ci))
+ // Check for no-arg constructor.
+ ConstructorInfo ci =
info((Class<?>)o).getPublicConstructor(c -> c.getParameterCount() ==
0).orElse(null);
+ if (nn(ci))
return ci.newInstance();
// Check for builder.
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 f1ad938548..2256264f2c 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.reflect;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -202,16 +203,16 @@ public class Mutaters {
};
}
- var ici = ClassInfo.of(ic);
- var oci = ClassInfo.of(oc);
+ var ici = info(ic);
+ var oci = info(oc);
ClassInfo pic = ici.getAllParents().stream().filter(x ->
nn(m.get(x.inner()))).findFirst().orElse(null);
if (nn(pic))
return m.get(pic.inner());
if (ic == String.class) {
- Class<?> oc2 = oci.hasPrimitiveWrapper() ?
oci.getPrimitiveWrapper() : oc;
- var oc2i = ClassInfo.of(oc2);
+ Class<?> oc2 = oci.hasPrimitiveWrapper() ?
oci.getPrimitiveWrapper() : oc;
+ var oc2i = info(oc2);
// @formatter:off
final MethodInfo createMethod = oc2i.getPublicMethod(
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index d0e5821990..1d7956818e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -17,6 +17,7 @@
package org.apache.juneau.serializer;
import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.StringUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
@@ -376,16 +377,16 @@ public class SerializerSession extends
BeanTraverseSession {
if (cm.isArray() || (cm.isObject() && isArray(value))) {
if (((Object[])value).length == 0)
return true;
- }
- if (cm.isCollection() || (cm.isObject() &&
ClassInfo.of(value).isChildOf(Collection.class))) {
- if (((Collection<?>)value).isEmpty())
+ }
+ if (cm.isCollection() || (cm.isObject() &&
info(value).isChildOf(Collection.class))) {
+ if (((Collection<?>)value).isEmpty())
return true;
}
}
- if (isTrimEmptyMaps()) {
- if (cm.isMap() || (cm.isObject() &&
ClassInfo.of(value).isChildOf(Map.class))) {
- if (((Map<?,?>)value).isEmpty())
+ if (isTrimEmptyMaps()) {
+ if (cm.isMap() || (cm.isObject() &&
info(value).isChildOf(Map.class))) {
+ if (((Map<?,?>)value).isEmpty())
return true;
}
}
@@ -652,9 +653,9 @@ public class SerializerSession extends BeanTraverseSession {
public final String toString(Object o) {
if (o == null)
return null;
- if (o.getClass() == Class.class)
- return ClassInfo.of((Class<?>)o).getNameFull();
- if (o.getClass() == ClassInfo.class)
+ if (o.getClass() == Class.class)
+ return info((Class<?>)o).getNameFull();
+ if (o.getClass() == ClassInfo.class)
return ((ClassInfo)o).getNameFull();
if (o.getClass().isEnum())
return getClassMetaForObject(o).toString(o);
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 c5cf65201d..b7cfe73f3a 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
@@ -17,6 +17,7 @@
package org.apache.juneau.serializer;
import static java.util.stream.Collectors.*;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.ThrowableUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -383,9 +384,9 @@ public class SerializerSet {
private Object createBuilder(Object o) {
if (o instanceof Class) {
- // Check for no-arg constructor.
- ConstructorInfo ci =
ClassInfo.of((Class<?>)o).getPublicConstructor(c -> c.getParameterCount() ==
0).orElse(null);
- if (nn(ci))
+ // Check for no-arg constructor.
+ ConstructorInfo ci =
info((Class<?>)o).getPublicConstructor(c -> c.getParameterCount() ==
0).orElse(null);
+ if (nn(ci))
return ci.newInstance();
// Check for builder create method.
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 e79b332352..f131ea1812 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.svl;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.CollectionUtils.*;
import static org.apache.juneau.common.utils.StateEnum.*;
import static org.apache.juneau.common.utils.StringUtils.*;
@@ -265,9 +266,9 @@ public class VarResolverSession {
if (o instanceof Set c) {
try {
if (! containsVars(c))
- return o;
- Set c2 =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.getParameterCount() == 0)
- .map(ci -> safe(() ->
(Set)ci.inner().newInstance()))
+ return o;
+ Set c2 = info(o).getDeclaredConstructor(x ->
x.isPublic() && x.getParameterCount() == 0)
+ .map(ci -> safe(() ->
(Set)ci.inner().newInstance()))
.orElseGet(LinkedHashSet::new);
Set c3 = c2;
c.forEach(x -> c3.add(resolve(x)));
@@ -281,9 +282,9 @@ public class VarResolverSession {
if (o instanceof List c) {
try {
if (! containsVars(c))
- return o;
- List c2 =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.getParameterCount() == 0)
- .map(ci -> safe(() ->
(List)ci.inner().newInstance()))
+ return o;
+ List c2 = info(o).getDeclaredConstructor(x ->
x.isPublic() && x.getParameterCount() == 0)
+ .map(ci -> safe(() ->
(List)ci.inner().newInstance()))
.orElseGet(() -> list());
List c3 = c2;
c.forEach(x -> c3.add(resolve(x)));
@@ -297,9 +298,9 @@ public class VarResolverSession {
if (o instanceof Map m) {
try {
if (! containsVars(m))
- return o;
- Map m2 =
ClassInfo.of(o).getDeclaredConstructor(x -> x.isPublic() &&
x.getParameterCount() == 0)
- .map(ci -> safe(() ->
(Map)ci.inner().newInstance()))
+ return o;
+ Map m2 = info(o).getDeclaredConstructor(x ->
x.isPublic() && x.getParameterCount() == 0)
+ .map(ci -> safe(() ->
(Map)ci.inner().newInstance()))
.orElseGet(LinkedHashMap::new);
Map m3 = m2;
m.forEach((k, v) -> m3.put(k, resolve(v)));
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 76ba5d2a6d..7aad1cdd2f 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.swap;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.ClassUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
@@ -50,11 +51,11 @@ public class BuilderSwap<T,B> {
*/
@SuppressWarnings("rawtypes")
public static BuilderSwap<?,?> findSwapFromBuilderClass(Class<?>
builderClass, Visibility cVis, Visibility mVis) {
- var bci = ClassInfo.of(builderClass);
+ var bci = info(builderClass);
if (bci.isNotPublic())
return null;
- Class<?> objectClass =
ClassInfo.of(builderClass).getParameterType(0, Builder.class);
+ Class<?> objectClass = info(builderClass).getParameterType(0,
Builder.class);
MethodInfo createObjectMethod, createBuilderMethod;
ConstructorInfo objectConstructor;
@@ -64,13 +65,13 @@ public class BuilderSwap<T,B> {
if (nn(createObjectMethod))
objectClass =
createObjectMethod.getReturnType().inner();
- if (objectClass == null)
- return null;
+ if (objectClass == null)
+ return null;
- var pci = ClassInfo.of(objectClass);
+ var pci = info(objectClass);
- objectConstructor = pci.getDeclaredConstructor(x ->
x.isVisible(cVis) && x.hasParameterTypes(builderClass)).orElse(null);
- if (objectConstructor == null)
+ objectConstructor = pci.getDeclaredConstructor(x -> x.isVisible(cVis)
&& x.hasParameterTypes(builderClass)).orElse(null);
+ if (objectConstructor == null)
return null;
builderConstructor = bci.getNoArgConstructor(cVis).orElse(null);
@@ -95,8 +96,8 @@ public class BuilderSwap<T,B> {
var builderClass = Value.<Class<?>>empty();
MethodInfo objectCreateMethod, builderCreateMethod;
ConstructorInfo objectConstructor = null;
- ConstructorInfo builderConstructor;
- var pci = ClassInfo.of(objectClass);
+ ConstructorInfo builderConstructor;
+ var pci = info(objectClass);
bc.getAnnotationProvider().find(org.apache.juneau.annotation.Builder.class,
pci).stream().map(x -> x.inner().value()).filter(x -> isNotVoid(x)).forEach(x
-> builderClass.set(x));
@@ -122,8 +123,8 @@ public class BuilderSwap<T,B> {
if (builderClass.isEmpty())
return null;
- var bci = ClassInfo.of(builderClass.get());
- builderConstructor = bci.getNoArgConstructor(cVis).orElse(null);
+ var bci = info(builderClass.get());
+ builderConstructor = bci.getNoArgConstructor(cVis).orElse(null);
if (builderConstructor == null && builderCreateMethod == null)
return null;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/ObjectSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/ObjectSwap.java
index 0873bccade..73d7e9258f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/ObjectSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/ObjectSwap.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.swap;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
import java.util.*;
@@ -122,11 +123,11 @@ public abstract class ObjectSwap<T,S> {
* Constructor.
*/
protected ObjectSwap() {
- var ci = ClassInfo.of(this.getClass());
+ var ci = info(this.getClass());
normalClass = (Class<T>)ci.getParameterType(0,
ObjectSwap.class);
swapClass = ci.getParameterType(1, ObjectSwap.class);
- normalClassInfo = ClassInfo.of(normalClass);
- swapClassInfo = ClassInfo.of(swapClass);
+ normalClassInfo = info(normalClass);
+ swapClassInfo = info(swapClass);
forMediaTypes = forMediaTypes();
template = withTemplate();
}
@@ -139,10 +140,10 @@ public abstract class ObjectSwap<T,S> {
*/
protected ObjectSwap(Class<T> normalClass, Class<?> swapClass) {
this.normalClass = normalClass;
- this.swapClass = swapClass;
- normalClassInfo = opt(normalClass).map(x ->
ClassInfo.of(x)).orElse(null);
- swapClassInfo = opt(swapClass).map(x ->
ClassInfo.of(x)).orElse(null);
- this.forMediaTypes = forMediaTypes();
+ this.swapClass = swapClass;
+ normalClassInfo = opt(normalClass).map(x -> info(x)).orElse(null);
+ swapClassInfo = opt(swapClass).map(x -> info(x)).orElse(null);
+ this.forMediaTypes = forMediaTypes();
this.template = withTemplate();
}
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 99aa7268d5..ad0d195d61 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
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.swap;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.Utils.*;
import java.lang.reflect.*;
@@ -52,9 +53,9 @@ public class SurrogateSwap<T,F> extends ObjectSwap<T,F> {
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static List<SurrogateSwap<?,?>> findObjectSwaps(Class<?> c,
BeanContext bc) {
- List<SurrogateSwap<?,?>> l = new LinkedList<>();
- var ci = ClassInfo.of(c);
- ci.getPublicConstructors().stream().filter(x -> !
bc.getAnnotationProvider().has(BeanIgnore.class, x) && x.hasNumParameters(1) &&
x.isPublic()).forEach(x -> {
+ List<SurrogateSwap<?,?>> l = new LinkedList<>();
+ var ci = info(c);
+ ci.getPublicConstructors().stream().filter(x -> !
bc.getAnnotationProvider().has(BeanIgnore.class, x) && x.hasNumParameters(1) &&
x.isPublic()).forEach(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-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
index b569e0ad72..f7bf621e0c 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
@@ -16,6 +16,7 @@
*/
package org.apache.juneau.swaps;
+import static org.apache.juneau.common.reflect.ReflectionUtils.*;
import static org.apache.juneau.common.utils.DateUtils.*;
import java.lang.reflect.*;
@@ -338,9 +339,9 @@ public class TemporalSwap extends StringSwap<Temporal> {
private static Method findParseMethod(Class<? extends Temporal> c)
throws ExecutableException {
Method m = FROM_METHODS.get(c);
if (m == null) {
- // @formatter:off
- m = ClassInfo.of(c).getPublicMethod(
- x -> x.isStatic()
+ // @formatter:off
+ m = info(c).getPublicMethod(
+ x -> x.isStatic()
&& x.isNotDeprecated()
&& x.hasName("from")
&& x.hasReturnType(c)