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 7ea7117c4a Marshall module improvements
7ea7117c4a is described below
commit 7ea7117c4ae7e4d484fc47db31521e83ef8b3917
Author: James Bognar <[email protected]>
AuthorDate: Fri Dec 5 19:21:00 2025 -0500
Marshall module improvements
---
.../juneau/commons/reflect/ClassInfoTyped.java | 5 +
.../java/org/apache/juneau/config/Section.java | 4 +-
.../org/apache/juneau/jena/RdfParserSession.java | 10 +-
.../apache/juneau/jena/RdfSerializerSession.java | 4 +-
.../main/java/org/apache/juneau/BeanContext.java | 6 +-
.../src/main/java/org/apache/juneau/BeanMap.java | 2 +-
.../src/main/java/org/apache/juneau/BeanMeta.java | 14 +-
.../java/org/apache/juneau/BeanPropertyMeta.java | 14 +-
.../java/org/apache/juneau/BeanPropertyValue.java | 2 +-
.../main/java/org/apache/juneau/BeanRegistry.java | 6 +-
.../main/java/org/apache/juneau/BeanSession.java | 14 +-
.../org/apache/juneau/BeanTraverseSession.java | 2 +-
.../src/main/java/org/apache/juneau/ClassMeta.java | 310 ++++-----------------
.../java/org/apache/juneau/ExtendedClassMeta.java | 2 +-
.../org/apache/juneau/collections/JsonMap.java | 12 +-
.../org/apache/juneau/html/HtmlParserSession.java | 12 +-
.../apache/juneau/html/HtmlSerializerSession.java | 2 +-
.../org/apache/juneau/httppart/HttpPartSchema.java | 2 +-
.../juneau/httppart/SimplePartParserSession.java | 2 +-
.../apache/juneau/internal/DelegateBeanMap.java | 2 +-
.../org/apache/juneau/json/JsonParserSession.java | 8 +-
.../apache/juneau/json/JsonSerializerSession.java | 2 +-
.../juneau/jsonschema/BasicBeanDefMapper.java | 2 +-
.../juneau/jsonschema/JsonSchemaGenerator.java | 2 +-
.../jsonschema/JsonSchemaGeneratorSession.java | 4 +-
.../juneau/msgpack/MsgPackParserSession.java | 6 +-
.../juneau/msgpack/MsgPackSerializerSession.java | 2 +-
.../apache/juneau/oapi/OpenApiParserSession.java | 4 +-
.../org/apache/juneau/parser/ParserSession.java | 6 +-
.../java/org/apache/juneau/parser/ParserSet.java | 2 +-
.../apache/juneau/serializer/SerializerSet.java | 2 +-
.../org/apache/juneau/swaps/InputStreamSwap.java | 2 +-
.../java/org/apache/juneau/swaps/TemporalSwap.java | 2 +-
.../org/apache/juneau/uon/UonParserSession.java | 10 +-
.../apache/juneau/uon/UonSerializerSession.java | 2 +-
.../urlencoding/UrlEncodingParserSession.java | 6 +-
.../java/org/apache/juneau/xml/XmlBeanMeta.java | 4 +-
.../org/apache/juneau/xml/XmlBeanPropertyMeta.java | 4 +-
.../org/apache/juneau/xml/XmlParserSession.java | 10 +-
.../apache/juneau/xml/XmlSerializerSession.java | 2 +-
.../apache/juneau/rest/client/RestResponse.java | 2 +-
.../java/org/apache/juneau/rest/RestRequest.java | 2 +-
.../org/apache/juneau/rest/arg/FormDataArg.java | 2 +-
.../java/org/apache/juneau/rest/arg/HeaderArg.java | 2 +-
.../java/org/apache/juneau/rest/arg/QueryArg.java | 2 +-
.../apache/juneau/rest/rrpc/RrpcRestOpContext.java | 2 +-
.../test/java/org/apache/juneau/BeanMap_Test.java | 54 ++--
.../java/org/apache/juneau/ClassMeta_Test.java | 80 +++---
.../apache/juneau/objecttools/ObjectRest_Test.java | 4 +-
49 files changed, 225 insertions(+), 434 deletions(-)
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfoTyped.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfoTyped.java
index 49248b3298..72886cd5c8 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfoTyped.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfoTyped.java
@@ -44,6 +44,11 @@ public class ClassInfoTyped<T> extends ClassInfo {
super(inner, innerType);
}
+ @Override
+ public Class<T> inner() {
+ return (Class<T>)super.inner();
+ }
+
@Override
public T getPrimitiveDefault() { return (T)super.getPrimitiveDefault();
}
}
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
index 23bfa248fc..752edc2058 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Section.java
@@ -117,7 +117,7 @@ public class Section {
if (! ignoreUnknownProperties)
throw new ParseException("Unknown
property ''{0}'' encountered in configuration section ''{1}''.", k, name);
} else {
- bm.put(k, config.get(name + '/' +
k).as(bpm.getClassMeta().getInnerClass()).orElse(null));
+ bm.put(k, config.get(name + '/' +
k).as(bpm.getClassMeta().inner()).orElse(null));
}
}
@@ -254,7 +254,7 @@ public class Section {
if (! ignoreUnknownProperties)
throw new ParseException("Unknown
property ''{0}'' encountered in configuration section ''{1}''.", k, name);
} else {
- bm.put(k, config.get(name + '/' +
k).as(bpm.getClassMeta().getInnerClass()).orElse(null));
+ bm.put(k, config.get(name + '/' +
k).as(bpm.getClassMeta().inner()).orElse(null));
}
}
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index 8540508ca6..f46e534506 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
@@ -392,7 +392,7 @@ public class RdfParserSession extends ReaderParserSession {
} else if (sType.isChar()) {
o = parseCharacter(decodeString(getValue(n, outer)));
} else if (sType.isNumber()) {
- o = parseNumber(getValue(n, outer).toString(), (Class<?
extends Number>)sType.getInnerClass());
+ o = parseNumber(getValue(n, outer).toString(), (Class<?
extends Number>)sType.inner());
} else if (sType.isMap()) {
var r = n.asResource();
if (! urisVisited.add(r))
@@ -428,7 +428,7 @@ public class RdfParserSession extends ReaderParserSession {
var r = n.asResource();
if (! urisVisited.add(r))
return null;
- var bm = newBeanMap(outer, sType.getInnerClass());
+ var bm = newBeanMap(outer, sType.inner());
o = parseIntoBeanMap(r, bm).getBean();
} else if (sType.isUri() && n.isResource()) {
o = sType.newInstanceFromString(outer,
decodeString(n.asResource().getURI()));
@@ -441,11 +441,11 @@ public class RdfParserSession extends ReaderParserSession
{
if (m.containsKey(getBeanTypePropertyName(eType)))
o = cast((JsonMap)m, pMeta, eType);
else if (nn(sType.getProxyInvocationHandler()))
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer,
sType.inner()).load(m).getBean();
else
- throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.getInnerClass().getName(),
sType.getNotABeanReason());
+ throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
} else {
- throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}''", sType.getInnerClass().getName(),
sType.getNotABeanReason());
+ throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
}
if (nn(swap) && nn(o))
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index da53123835..9237e83d3e 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -403,7 +403,7 @@ public class RdfSerializerSession extends
WriterSerializerSession {
} else if (sType.isCollectionOrArray() || (nn(wType) &&
wType.isCollection())) {
- var c = sort(sType.isCollection() ? (Collection)o :
toList(sType.getInnerClass(), o));
+ var c = sort(sType.isCollection() ? (Collection)o :
toList(sType.inner(), o));
var f = getCollectionFormat();
var cRdf = getRdfClassMeta(sType);
var bpRdf = getRdfBeanPropertyMeta(bpm);
@@ -545,7 +545,7 @@ public class RdfSerializerSession extends
WriterSerializerSession {
var cm = getClassMetaForObject(o);
if (isLooseCollections() && nn(cm) && cm.isCollectionOrArray())
{
- Collection c = cm.isCollection() ? (Collection)o :
toList(cm.getInnerClass(), o);
+ Collection c = cm.isCollection() ? (Collection)o :
toList(cm.inner(), o);
forEachEntry(c, x -> serializeAnything(x, false,
object(), "root", null, null));
} else {
RDFNode n = serializeAnything(o, false,
getExpectedRootType(o), "root", null, null);
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 2883a6080f..a871e305f1 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
@@ -4441,10 +4441,10 @@ public class BeanContext extends Context {
if (cm.getBeanContext() == this)
return cm;
if (cm.isMap())
- return getClassMeta(cm.innerClass,
cm.getKeyType(), cm.getValueType());
+ return getClassMeta(cm.inner(),
cm.getKeyType(), cm.getValueType());
if (cm.isCollection() || cm.isOptional())
- return getClassMeta(cm.innerClass,
cm.getElementType());
- return getClassMeta(cm.innerClass);
+ return getClassMeta(cm.inner(),
cm.getElementType());
+ return getClassMeta(cm.inner());
}
Class c = resolve(o, typeVarImpls);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index b85e10d557..e440ed6f64 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -431,7 +431,7 @@ public class BeanMap<T> extends AbstractMap<String,Object>
implements Delegate<T
propertyCache.forEach((k, v) -> put(k, v));
propertyCache = null;
} catch (IllegalArgumentException e) {
- throw bex(e, meta.classMeta.innerClass,
"IllegalArgumentException occurred on call to class constructor ''{0}'' with
argument types ''{1}''", c.getSimpleName(),
+ throw bex(e, meta.classMeta.inner(),
"IllegalArgumentException occurred on call to class constructor ''{0}'' with
argument types ''{1}''", c.getSimpleName(),
Json5Serializer.DEFAULT.toString(getClasses(args)));
} catch (Exception e) {
throw bex(e);
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 8746f0b110..2b435ee78a 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
@@ -163,13 +163,13 @@ public class BeanMeta<T> {
if (nn(s))
return s;
}
- var pcm = cm.innerClass.getSuperclass();
+ var pcm = cm.inner().getSuperclass();
if (nn(pcm)) {
var s =
findDictionaryName(ctx.getClassMeta(pcm));
if (nn(s))
return s;
}
- for (var icm : cm.innerClass.getInterfaces()) {
+ for (var icm : cm.inner().getInterfaces()) {
var s =
findDictionaryName(ctx.getClassMeta(icm));
if (nn(s))
return s;
@@ -193,7 +193,7 @@ public class BeanMeta<T> {
}
String init(BeanMeta<T> beanMeta) {
- var c = classMeta.getInnerClass();
+ var c = classMeta.inner();
var ci = classMeta;
var ap = ctx.getAnnotationProvider();
@@ -210,7 +210,7 @@ public class BeanMeta<T> {
var typeName = Value.<String>empty();
classMeta.forEachAnnotation(Bean.class, x ->
isNotEmpty(x.typeName()), x -> typeName.set(x.typeName()));
if (typeName.isPresent())
- bdClasses.add(classMeta.innerClass);
+ bdClasses.add(classMeta.inner());
this.beanRegistry = new BeanRegistry(ctx, null,
bdClasses.toArray(new Class<?>[bdClasses.size()]));
var typePropertyName = Value.<String>empty();
@@ -889,7 +889,7 @@ public class BeanMeta<T> {
protected BeanMeta(ClassMeta<T> classMeta, BeanContext ctx, BeanFilter
beanFilter, String[] pNames, ConstructorInfo implClassConstructor) {
this.classMeta = classMeta;
this.ctx = ctx;
- this.c = classMeta.getInnerClass();
+ this.c = classMeta.inner();
Builder<T> b = new Builder<>(classMeta, ctx, beanFilter,
pNames, implClassConstructor);
notABeanReason = b.init(this);
@@ -1053,8 +1053,8 @@ public class BeanMeta<T> {
return constructor.<T>newInstance();
InvocationHandler h =
classMeta.getProxyInvocationHandler();
if (nn(h)) {
- ClassLoader cl =
classMeta.innerClass.getClassLoader();
- return (T)Proxy.newProxyInstance(cl,
a(classMeta.innerClass, java.io.Serializable.class), h);
+ ClassLoader cl =
classMeta.inner().getClassLoader();
+ return (T)Proxy.newProxyInstance(cl,
a(classMeta.inner(), java.io.Serializable.class), h);
}
}
return null;
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 10674c9f2c..5cd1381b43 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
@@ -922,7 +922,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
@Override /* Overridden from Object */
public String toString() {
- return name + ": " + this.rawTypeMeta.getInnerClass().getName()
+ ", field=[" + field + "], getter=[" + getter + "], setter=[" + setter + "]";
+ return name + ": " + this.rawTypeMeta.inner().getName() + ",
field=[" + field + "], getter=[" + getter + "], setter=[" + setter + "]";
}
private Object applyChildPropertiesFilter(BeanSession session,
ClassMeta cm, Object o) {
@@ -1047,7 +1047,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
m = (Map<String,Object>)getter.invoke(bean);
else
throw bex(beanMeta.c, "Cannot set property
''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined
on this property, and the existing property value is null",
- name,
this.getClassMeta().getInnerClass().getName(), findClassName(val));
+ name,
this.getClassMeta().inner().getName(), findClassName(val));
return (m == null ? null : m.put(pName, val));
}
if (nn(setter))
@@ -1057,7 +1057,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
return null;
}
throw bex(beanMeta.c, "Cannot set property ''{0}'' of type
''{1}'' to object of type ''{2}'' because no setter is defined on this
property, and the existing property value is null", name,
- this.getClassMeta().getInnerClass().getName(),
findClassName(val));
+ this.getClassMeta().inner().getName(),
findClassName(val));
}
@SuppressWarnings("null")
@@ -1095,7 +1095,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
try {
var r = (bc.isBeanMapPutReturnsOldValue() ||
isMap || isCollection) && (nn(getter) || nn(field)) ? get(m, pName) : null;
- var propertyClass = rawTypeMeta.getInnerClass();
+ var propertyClass = rawTypeMeta.inner();
var pcInfo = rawTypeMeta;
if (value == null && (isMap || isCollection)) {
@@ -1131,7 +1131,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
if (!
valueType.isObject()) {
var
needsConversion = Flag.create();
valueMap.forEach((k, v) -> {
-
if (nn(v) && ! valueType.getInnerClass().isInstance(v)) {
+
if (nn(v) && ! valueType.inner().isInstance(v)) {
needsConversion.set();
}
});
@@ -1190,7 +1190,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
List l
= new JsonList(valueList);
for
(ListIterator<Object> i = l.listIterator(); i.hasNext();) {
Object v = i.next();
-
if (nn(v) && (! elementType.getInnerClass().isInstance(v))) {
+
if (nn(v) && (! elementType.inner().isInstance(v))) {
i.set(session.convertToType(v, elementType));
}
}
@@ -1310,7 +1310,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
* @throws InvocationTargetException Thrown by method invocation.
*/
protected void setArray(Object bean, List l) throws
IllegalArgumentException, IllegalAccessException, InvocationTargetException {
- Object array = toArray(l,
this.rawTypeMeta.getElementType().getInnerClass());
+ Object array = toArray(l,
this.rawTypeMeta.getElementType().inner());
invokeSetter(bean, name, array);
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
index 7d0a9515b4..d9e8e1b1cc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
@@ -91,7 +91,7 @@ public class BeanPropertyValue implements
Comparable<BeanPropertyValue> {
.create()
.append("name", name)
.append("value", value)
- .append("type",
pMeta.getClassMeta().getInnerClass().getSimpleName())
+ .append("type",
pMeta.getClassMeta().inner().getSimpleName())
.toString();
// @formatter:on
}
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 d119b324cb..046ea7216b 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
@@ -86,7 +86,7 @@ public class BeanRegistry {
if (typeName.charAt(typeName.length() - 1) == '^') {
cm = getClassMeta(typeName.substring(0,
typeName.length() - 1));
if (nn(cm)) {
- cm =
bc.getClassMeta(Array.newInstance(cm.innerClass, 1).getClass());
+ cm =
bc.getClassMeta(Array.newInstance(cm.inner(), 1).getClass());
map.put(typeName, cm);
}
return cm;
@@ -101,7 +101,7 @@ public class BeanRegistry {
* @return The dictionary name for the specified class in this
registry, or <jk>null</jk> if not found.
*/
public String getTypeName(ClassMeta<?> c) {
- return isEmpty ? null : reverseMap.get(c.innerClass);
+ return isEmpty ? null : reverseMap.get(c.inner());
}
/**
@@ -169,7 +169,7 @@ public class BeanRegistry {
private void addToMap(String typeName, ClassMeta<?> cm) {
map.put(typeName, cm);
- reverseMap.put(cm.innerClass, typeName);
+ reverseMap.put(cm.inner(), typeName);
}
private ClassMeta<?> getTypedClassMeta(Object array) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index fe81dd4177..91d083c0aa 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1172,7 +1172,7 @@ public class BeanSession extends ContextSession {
if (to.isOptional() && (! (value instanceof Optional)))
return (T)opt(convertToMemberType(outer, value,
to.getElementType()));
- var tc = to.getInnerClass();
+ var tc = to.inner();
// If no conversion needed, then just return the value.
// Don't include maps or collections, because child
elements may need conversion.
@@ -1198,7 +1198,7 @@ public class BeanSession extends ContextSession {
if (nn(swap)) {
var nc = swap.getNormalClass();
var fc = swap.getSwapClass();
- if (nc.isParentOf(from.getInnerClass()) &&
fc.isParentOf(tc))
+ if (nc.isParentOf(from.inner()) &&
fc.isParentOf(tc))
return (T)swap.swap(this, value);
}
@@ -1505,7 +1505,7 @@ public class BeanSession extends ContextSession {
var typeName =
m2.getString(getBeanTypePropertyName(to));
if (nn(typeName)) {
var cm =
to.getBeanRegistry().getClassMeta(typeName);
- if (nn(cm) &&
to.isParentOf(cm.innerClass))
+ if (nn(cm) &&
to.isParentOf(cm.inner()))
return (T)m2.cast(cm);
}
}
@@ -1554,7 +1554,7 @@ public class BeanSession extends ContextSession {
return
(T)GregorianCalendar.from(GranularZonedDateTime.of(value.toString()).getZonedDateTime());
}
- if (to.isDate() && to.getInnerClass() == Date.class) {
+ if (to.isDate() && to.inner() == Date.class) {
if (from.isCalendar())
return (T)((Calendar)value).getTime();
return
(T)GregorianCalendar.from(GranularZonedDateTime.of(value.toString()).getZonedDateTime()).getTime();
@@ -1567,7 +1567,7 @@ public class BeanSession extends ContextSession {
return from.mutateTo(value, to);
if (to.isBean())
- return
newBeanMap(to.getInnerClass()).load(value.toString()).getBean();
+ return
newBeanMap(to.inner()).load(value.toString()).getBean();
if (to.canCreateNewInstanceFromString(outer))
return to.newInstanceFromString(outer,
value.toString());
@@ -1649,11 +1649,11 @@ public class BeanSession extends ContextSession {
if (list == null)
return null;
var componentType = type.isArgs() ? object() :
type.getElementType();
- var array = Array.newInstance(componentType.getInnerClass(),
list.size());
+ var array = Array.newInstance(componentType.inner(),
list.size());
var i = IntegerValue.create();
list.forEach(x -> {
var x2 = x;
- if (! type.getInnerClass().isInstance(x)) {
+ if (! type.inner().isInstance(x)) {
if (componentType.isArray() && x instanceof
Collection<?> c)
x2 = toArray(componentType, c);
else if (x == null &&
componentType.isPrimitive())
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
index 6c3aa5e6d3..040b3820f7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
@@ -360,7 +360,7 @@ public class BeanTraverseSession extends BeanSession {
if (o == null)
return null;
var c = o.getClass();
- var cm = (nn(eType) && c == eType.getInnerClass()) ? eType :
((o instanceof ClassMeta) ? (ClassMeta<?>)o : getClassMeta(c));
+ var cm = (nn(eType) && c == eType.inner()) ? eType : ((o
instanceof ClassMeta) ? (ClassMeta<?>)o : getClassMeta(c));
if (cm.isCharSequence() || cm.isNumber() || cm.isBoolean())
return cm;
if (depth > getMaxDepth())
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 8aaab53fdf..40e825c4df 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
@@ -35,7 +35,6 @@ import java.util.function.*;
import org.apache.juneau.annotation.*;
import org.apache.juneau.commons.collections.*;
-import org.apache.juneau.commons.function.*;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.utils.*;
import org.apache.juneau.cp.*;
@@ -69,116 +68,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
private static final AnnotationProvider AP =
AnnotationProvider.INSTANCE;
- @SuppressWarnings({ "unchecked", "rawtypes", "hiding" })
- private class ClassMetaBuilder<T> {
- Class<T> innerClass;
- BeanContext beanContext;
- ConstructorInfo noArgConstructor = null;
- ClassMeta<?> keyType = null, valueType = null, elementType =
null;
- String typePropertyName = null, notABeanReason = null;
- Throwable initException = null;
- BeanMeta beanMeta = null;
- InvocationHandler invocationHandler = null;
- BeanRegistry beanRegistry = null;
-
- ClassMetaBuilder(ClassInfo ci, Class<T> innerClass, BeanContext
beanContext) {
- this.innerClass = innerClass;
- this.beanContext = beanContext;
- var bc = beanContext;
- var ap = bc.getAnnotationProvider();
-
- Class c = ClassMeta.this.inner();
-
- // Find constructor(String) method if present.
- ci.getPublicConstructors().stream().filter(cs ->
cs.isPublic() && cs.isNotDeprecated()).forEach(cs -> {
- var params = cs.getParameters();
- if (params.size() == (ci.isMemberClass() &&
ci.isNotStatic() ? 1 : 0) && c != Object.class && ! (ci.isAbstract() &&
ci.isNotPrimitive())) {
- noArgConstructor = cs;
- }
- });
-
- if (innerClass != Object.class) {
- var x = implClass2.get() == null ? ci :
implClass2.get();
- noArgConstructor = x.getPublicConstructor(cons
-> cons.getParameterCount() == 0).orElse(null);
- }
-
- try {
-
- // If this is an array, get the element type.
- if (cat.is(ARRAY))
- elementType =
findClassMeta(innerClass.getComponentType());
-
- // If this is a MAP, see if it's parameterized
(e.g. AddressBook extends HashMap<String,Person>)
- else if (cat.is(MAP) && ! cat.is(BEANMAP)) {
- ClassMeta[] parameters =
findParameters();
- if (nn(parameters) && parameters.length
== 2) {
- keyType = parameters[0];
- valueType = parameters[1];
- } else {
- keyType =
findClassMeta(Object.class);
- valueType =
findClassMeta(Object.class);
- }
- }
-
- // If this is a COLLECTION, see if it's
parameterized (e.g. AddressBook extends LinkedList<Person>)
- else if (cat.is(COLLECTION) ||
ci.is(Optional.class)) {
- ClassMeta[] parameters =
findParameters();
- if (nn(parameters) && parameters.length
== 1) {
- elementType = parameters[0];
- } else {
- elementType =
findClassMeta(Object.class);
- }
- }
-
- // If the category is unknown, see if it's a
bean.
- // Note that this needs to be done after all
other initialization has been done.
- if (cat.isUnknown()) {
-
- var newMeta = (BeanMeta)null;
- try {
- newMeta = new
BeanMeta(ClassMeta.this, bc, beanFilter.get(), null, implClass2.get() == null ?
null : noArgConstructor);
- notABeanReason =
newMeta.notABeanReason;
-
- // Always get these even if
it's not a bean:
- beanRegistry =
newMeta.beanRegistry;
- typePropertyName =
newMeta.typePropertyName;
-
- } catch (RuntimeException e) {
- notABeanReason = e.getMessage();
- throw e;
- }
- if (notABeanReason == null)
- beanMeta = newMeta;
- }
-
- } catch (NoClassDefFoundError e) {
- initException = e;
- } catch (RuntimeException e) {
- initException = e;
- throw e;
- }
-
- if (nn(beanMeta) && nn(bc) &&
bc.isUseInterfaceProxies() && innerClass.isInterface())
- invocationHandler = new
BeanProxyInvocationHandler<T>(beanMeta);
-
- if (nn(bc)) {
- ap.find(Bean.class,
ci).stream().map(AnnotationInfo::inner).forEach(x -> {
- if (x.dictionary().length != 0)
- beanRegistry = new
BeanRegistry(bc, null, x.dictionary());
- });
- }
- }
-
- private ClassMeta<?> findClassMeta(Class<?> c) {
- return beanContext.getClassMeta(c, false);
- }
-
- private ClassMeta<?>[] findParameters() {
- return beanContext.findParameters(innerClass,
innerClass);
- }
-
- }
-
enum Category {
MAP(0),
COLLECTION(1),
@@ -281,8 +170,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
// @formatter:on
}
- final Class<T> innerClass; // The class
being wrapped.
- final ClassInfo info;
private final Categories cat; // The class
category.
private final ObjectSwap<?,?>[] childSwaps; // Any
ObjectSwaps where the normal type is a subclass of this class.
private final ConcurrentHashMap<Class<?>,ObjectSwap<?,?>> childSwapMap;
// Maps normal subclasses to ObjectSwaps.
@@ -295,7 +182,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
private final BeanMeta<T> beanMeta; // The bean
meta for this bean class (if it's a bean).
private final String typePropertyName;
// The property name of the _type property for this class and subclasses.
private final String notABeanReason;
// If this isn't a bean, the reason why.
- private final Throwable initException; // Any
exceptions thrown in the init() method.
private final InvocationHandler invocationHandler; // The
invocation handler for this class (if it has one).
private final BeanRegistry beanRegistry; // The bean
registry of this class meta (if it has one).
private final ClassMeta<?>[] args; // Arg types if
this is an array of args.
@@ -303,62 +189,12 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
private final Map<Class<?>,Mutater<T,?>> toMutaters = new
ConcurrentHashMap<>();
private final Mutater<String,T> stringMutater;
private final Map<Class<?>,Annotation[]> annotationArrayMap = new
ConcurrentHashMap<>();
-
private final Map<Class<?>,Optional<?>> annotationLastMap = new
ConcurrentHashMap<>();
-
private final Map<String,Optional<?>> properties = new
ConcurrentHashMap<>();
-
private final SimpleReadWriteLock lock = new SimpleReadWriteLock(false);
- private final Supplier<String> typePropertyName2;
// The property name of the _type property for this class and
subclasses.
-
- private String findTypePropertyName() {
- var b = beanMeta2.get();
- if (b.getA() != null)
- return b.getA().typePropertyName;
- return null;
- }
-
- private final Supplier<Tuple2<BeanMeta<T>,String>> beanMeta2;
-
- private Tuple2<BeanMeta<T>,String> findBeanMeta() {
- if (! cat.isUnknown())
- return new Tuple2<>(null, "Known non-bean type");
- if (beanContext == null)
- return new Tuple2<>(null, "No bean context");
-
- BeanMeta<T> newMeta = null;
- String notABeanReason = null;
- try {
- newMeta = new BeanMeta<>(ClassMeta.this, beanContext,
beanFilter.get(), null, implClass2.get() == null ? null :
noArgConstructor.get());
- notABeanReason = newMeta.notABeanReason;
- } catch (RuntimeException e) {
- notABeanReason = e.getMessage();
- throw e;
- }
- return Tuple2.of(newMeta, notABeanReason);
- }
-
- private final Supplier<BeanRegistry> beanRegistry2; //
The bean registry of this class meta (if it has one).
private final Supplier<String> dictionaryName;
// The dictionary name of this class if it has one.
- private BeanRegistry findBeanRegistry() {
- if (beanContext == null)
- return null;
-
- var b = beanMeta2.get();
- if (b.getA() != null)
- return b.getA().beanRegistry;
-
- return beanContext.getAnnotationProvider().find(Bean.class,
this)
- .stream()
- .map(AnnotationInfo::inner)
- .filter(x -> x.dictionary().length > 0)
- .map(x -> new BeanRegistry(beanContext, null,
x.dictionary()))
- .findFirst()
- .orElse(null);
- }
-
private String findBeanDictionaryName() {
if (beanContext == null)
return null;
@@ -481,7 +317,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
private ConstructorInfo findNoArgConstructor() {
- if (is(Object.class) || isAbstract())
+ if (is(Object.class))
return null;
if (implClass2.get() != null)
@@ -549,6 +385,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
private final Supplier<String> example; //
Example JSON.
+ @SuppressWarnings("unchecked")
private String findExample() {
var example = opt(beanFilter.get()).map(x ->
x.getExample()).orElse(null);
@@ -567,7 +404,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
} else if (cat.is(CHARSEQ)) {
example = "foo";
} else if (cat.is(ENUM)) {
- Iterator<? extends Enum<?>> i =
EnumSet.allOf((Class<? extends Enum>)(Class)inner()).iterator();
+ Iterator<? extends Enum<?>> i =
EnumSet.allOf(inner().asSubclass(Enum.class)).iterator();
example = i.hasNext() ?
(beanContext.isUseEnumNames() ? i.next().name() : i.next().toString()) : null;
} else if (isAny(float.class, Float.class,
double.class, Double.class)) {
example = "1.0";
@@ -595,10 +432,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
return (ClassInfoTyped<? extends T>)v;
}
- private final ClassMeta<?> elementType2;
// If ARRAY or COLLECTION, the element class type.
- private final ClassMeta<?> keyType2;
// If MAP, the key class type.
- private final ClassMeta<?> valueType2;
// If MAP, the value class type.
-
private final Supplier<BidiMap<Object,String>> enumValues;
private BidiMap<Object,String> findEnumValues() {
@@ -609,7 +442,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
var useEnumNames = nn(bc) && bc.isUseEnumNames();
var m = BidiMap.<Object,String>create().unmodifiable();
- var c = (Class<? extends Enum<?>>)(Class)inner();
+ var c = inner().asSubclass(Enum.class);
stream(c.getEnumConstants()).forEach(x -> m.add(x, useEnumNames
? x.name() : x.toString()));
return m.build();
}
@@ -637,8 +470,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
@SuppressWarnings("unchecked")
ClassMeta(Class<T> innerClass, BeanContext beanContext,
ObjectSwap<T,?>[] swaps, ObjectSwap<?,?>[] childSwaps) {
super(innerClass);
- this.innerClass = innerClass;
- this.info = info(innerClass);
this.beanContext = beanContext;
this.cat = new Categories();
var notABeanReason = (String)null;
@@ -713,7 +544,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
var _valueType = (ClassMeta<?>)null;
if (cat.is(ARRAY)) {
- _elementType =
beanContext.getClassMeta(getComponentType().inner(), false);
+ _elementType =
beanContext.getClassMeta(inner().getComponentType(), false);
} else if (cat.is(MAP) && ! cat.is(BEANMAP)) {
// If this is a MAP, see if it's parameterized
(e.g. AddressBook extends HashMap<String,Person>)
var parameters =
beanContext.findParameters(inner(), inner());
@@ -734,18 +565,32 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
}
}
- this.elementType2 = _elementType;
- this.keyType2 = _keyType;
- this.valueType2 = _valueType;
+ BeanMeta<T> _beanMeta = null;
+ var _beanRegistry = new Value<BeanRegistry>();
+
+ if (! cat.isUnknown()) {
+ notABeanReason = "Known non-bean type";
+ } else {
+ try {
+ _beanMeta = new
BeanMeta<>(ClassMeta.this, beanContext, beanFilter.get(), null,
implClass2.get() == null ? null : noArgConstructor.get());
+ notABeanReason =
_beanMeta.notABeanReason;
+
_beanRegistry.set(_beanMeta.beanRegistry);
+ } catch (RuntimeException e) {
+ notABeanReason = e.getMessage();
+ }
+ }
- var builder = new ClassMetaBuilder<>(info, innerClass,
beanContext);
+ ap.find(Bean.class,
this).stream().map(AnnotationInfo::inner).forEach(x2 -> {
+ if (x2.dictionary().length != 0)
+ _beanRegistry.set(new
BeanRegistry(beanContext, null, x2.dictionary()));
+ });
+ this.beanMeta = notABeanReason == null ? _beanMeta :
null;
+ this.keyType = _keyType;
+ this.valueType = _valueType;
+ this.elementType = _elementType;
this.enumValues = memoize(()->findEnumValues());
- this.beanRegistry2 = memoize(()->findBeanRegistry());
this.dictionaryName =
memoize(()->findBeanDictionaryName());
- this.beanMeta2 = memoize(()->findBeanMeta());
- this.typePropertyName2 =
memoize(()->findTypePropertyName());
-
var _swaps = new ArrayList<ObjectSwap<T,?>>();
if (swaps != null)
@@ -767,25 +612,16 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
_swaps.add((ObjectSwap<T,?>)ds);
this.swaps = _swaps.isEmpty() ? null :
_swaps.toArray(new ObjectSwap[_swaps.size()]);
- this.keyType = builder.keyType;
- this.valueType = builder.valueType;
- this.elementType = builder.elementType;
- notABeanReason = builder.notABeanReason;
- this.beanMeta = builder.beanMeta;
- this.initException = builder.initException;
- this.typePropertyName = builder.typePropertyName;
- this.invocationHandler = builder.invocationHandler;
- this.beanRegistry = builder.beanRegistry;
+ this.typePropertyName = opt(beanMeta).map(x2 ->
x2.typePropertyName).orElse(null);
+
+ this.invocationHandler = (nn(beanMeta) &&
beanContext.isUseInterfaceProxies() && isInterface()) ? new
BeanProxyInvocationHandler<>(beanMeta) : null;
+ this.beanRegistry = _beanRegistry.get();
this.childSwaps = childSwaps;
this.childUnswapMap = childSwaps == null ? null : new
ConcurrentHashMap<>();
this.childSwapMap = childSwaps == null ? null : new
ConcurrentHashMap<>();
this.args = null;
this.stringMutater = Mutaters.get(String.class,
inner());
- } catch (ClassMetaRuntimeException e) {
- notABeanReason = e.getMessage();
- throw e;
- } finally {
this.notABeanReason = notABeanReason;
}
}
@@ -796,8 +632,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
@SuppressWarnings("unchecked")
ClassMeta(ClassMeta<?>[] args) {
super((Class<T>)Object[].class);
- this.innerClass = (Class<T>)Object[].class;
- this.info = info(innerClass);
this.args = args;
this.childSwaps = null;
this.childSwapMap = null;
@@ -812,7 +646,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
this.typePropertyName = null;
this.notABeanReason = null;
this.swaps = null;
- this.initException = null;
this.beanRegistry = null;
this.stringMutater = null;
this.fromStringMethod = memoize(()->findFromStringMethod());
@@ -827,14 +660,8 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
this.builderSwap = memoize(()->findBuilderSwap());
this.example = memoize(()->findExample());
this.implClass2 = memoize(()->findImplClass());
- this.elementType2 = null;
- this.keyType2 = null;
- this.valueType2 = null;
this.enumValues = memoize(()->findEnumValues());
- this.beanRegistry2 = memoize(()->findBeanRegistry());
this.dictionaryName = memoize(()->findBeanDictionaryName());
- this.beanMeta2 = memoize(()->findBeanMeta());
- this.typePropertyName2 = memoize(()->findTypePropertyName());
}
/**
@@ -844,10 +671,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* Used for creating Map and Collection class metas that shouldn't be
cached.
*/
ClassMeta(ClassMeta<T> mainType, ClassMeta<?> keyType, ClassMeta<?>
valueType, ClassMeta<?> elementType) {
- super(mainType.innerClass);
- this.innerClass = mainType.innerClass;
- this.info = mainType.info;
-// this.implClass = mainType.implClass;
+ super(mainType.inner());
this.childSwaps = mainType.childSwaps;
this.childSwapMap = mainType.childSwapMap;
this.childUnswapMap = mainType.childUnswapMap;
@@ -860,16 +684,12 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
this.invocationHandler = mainType.invocationHandler;
this.beanMeta = mainType.beanMeta;
this.typePropertyName = mainType.typePropertyName;
-// this.dictionaryName = mainType.dictionaryName;
this.notABeanReason = mainType.notABeanReason;
this.swaps = mainType.swaps;
- this.initException = mainType.initException;
this.beanRegistry = mainType.beanRegistry;
this.exampleMethod = mainType.exampleMethod;
-// this.example = mainType.example;
this.args = null;
this.stringMutater = mainType.stringMutater;
-// this.enumValues = mainType.enumValues;
this.parentPropertySetter = mainType.parentPropertySetter;
this.namePropertySetter = mainType.namePropertySetter;
this.exampleField = mainType.exampleField;
@@ -880,16 +700,11 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
this.builderSwap = mainType.builderSwap;
this.example = mainType.example;
this.implClass2 = mainType.implClass2;
- this.elementType2 = mainType.elementType2;
- this.keyType2 = mainType.keyType2;
- this.valueType2 = mainType.valueType2;
this.enumValues = mainType.enumValues;
- this.beanRegistry2 = mainType.beanRegistry2;
this.dictionaryName = mainType.dictionaryName;
- this.beanMeta2 = mainType.beanMeta2;
- this.typePropertyName2 = mainType.typePropertyName2;
}
+ @SuppressWarnings("unchecked")
private ObjectSwap<T,?> createSwap(Swap s) {
var c = s.value();
if (ClassUtils.isVoid(c))
@@ -982,7 +797,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
@Override /* Overridden from Object */
public boolean equals(Object o) {
- return (o instanceof ClassMeta<?> o2) && eq(this, o2, (x, y) ->
eq(x.innerClass, y.innerClass));
+ return (o instanceof ClassMeta<?>) && super.equals(o);
}
/**
@@ -1130,7 +945,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
} else if (super.isArray()) {
var etExample =
getElementType().getExample(session, jpSession);
if (nn(etExample)) {
- var o =
Array.newInstance(getElementType().innerClass, 1);
+ var o =
Array.newInstance(getElementType().inner(), 1);
Array.set(o, 0, etExample);
return (T)o;
}
@@ -1166,7 +981,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
if (t == Mutaters.NULL)
return null;
if (t == null) {
- t = Mutaters.get(c, innerClass);
+ t = Mutaters.get(c, inner());
if (t == null)
t = Mutaters.NULL;
fromMutaters.put(c, t);
@@ -1186,20 +1001,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
return null;
}
- /**
- * Returns any exception that was throw in the <c>init()</c> method.
- *
- * @return The cached exception.
- */
- public Throwable getInitException() { return initException; }
-
- /**
- * Returns the {@link Class} object that this class type wraps.
- *
- * @return The wrapped class object.
- */
- public Class<T> getInnerClass() { return innerClass; }
-
/**
* Returns the transform for this class for creating instances from an
InputStream.
*
@@ -1317,13 +1118,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
return (ps == null ? this : ps.getSwapClassMeta(session));
}
- /**
- * Shortcut for calling {@link Class#getSimpleName()} on the inner
class of this metadata.
- *
- * @return The simple name of the inner class.
- */
- public String getSimpleName() { return innerClass.getSimpleName(); }
-
/**
* Returns the transform for this class for creating instances from a
String.
*
@@ -1374,7 +1168,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
if (t == Mutaters.NULL)
return null;
if (t == null) {
- t = Mutaters.get(innerClass, c);
+ t = Mutaters.get(inner(), c);
if (t == null)
t = Mutaters.NULL;
toMutaters.put(c, t);
@@ -1425,7 +1219,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @return <jk>true</jk> if this class can be instantiated from the
specified type.
*/
public boolean hasMutaterFrom(ClassMeta<?> c) {
- return nn(getFromMutater(c.getInnerClass()));
+ return nn(getFromMutater(c.inner()));
}
/**
@@ -1445,7 +1239,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @return <jk>true</jk> if this class can be transformed to the
specified type.
*/
public boolean hasMutaterTo(ClassMeta<?> c) {
- return nn(getToMutater(c.getInnerClass()));
+ return nn(getToMutater(c.inner()));
}
/**
@@ -1648,7 +1442,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @return <jk>true</jk> if instance of this class can be null.
*/
public boolean isNullable() {
- if (innerClass.isPrimitive())
+ if (isPrimitive())
return is(char.class);
return true;
}
@@ -1674,14 +1468,6 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
*/
public boolean isOptional() { return is(Optional.class); }
- /**
- * Returns <jk>true</jk> if this class is a primitive.
- *
- * @return <jk>true</jk> if this class is a primitive.
- */
- @Override
- public boolean isPrimitive() { return innerClass.isPrimitive(); }
-
/**
* Returns <jk>true</jk> if this class is a {@link Reader}.
*
@@ -1765,10 +1551,10 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @param c The class
* @return The transformed object.
*/
- @SuppressWarnings({ "unchecked", "rawtypes" })
+ @SuppressWarnings({ "unchecked" })
public <O> O mutateTo(Object o, Class<O> c) {
Mutater<Object,O> t = (Mutater<Object,O>)getToMutater(c);
- return (O)(t == null ? null : t.mutate(o));
+ return t == null ? null : t.mutate(o);
}
/**
@@ -1780,7 +1566,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @return The transformed object.
*/
public <O> O mutateTo(Object o, ClassMeta<O> c) {
- return mutateTo(o, c.getInnerClass());
+ return mutateTo(o, c.inner());
}
/**
@@ -1793,13 +1579,13 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
@SuppressWarnings("unchecked")
public T newInstance() throws ExecutableException {
if (super.isArray())
- return
(T)Array.newInstance(getInnerClass().getComponentType(), 0);
+ return (T)Array.newInstance(inner().getComponentType(),
0);
var c = getConstructor();
if (nn(c))
return c.<T>newInstance();
var h = getProxyInvocationHandler();
if (nn(h))
- return
(T)Proxy.newProxyInstance(this.getClass().getClassLoader(), a(getInnerClass(),
java.io.Serializable.class), h);
+ return
(T)Proxy.newProxyInstance(this.getClass().getClassLoader(), a(inner(),
java.io.Serializable.class), h);
return null;
}
@@ -1841,7 +1627,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
if (isEnum()) {
var t = (T)enumValues.get().getKey(arg);
if (t == null && !
beanContext.isIgnoreUnknownEnumValues())
- throw new ExecutableException("Could not
resolve enum value ''{0}'' on class ''{1}''", arg, getInnerClass().getName());
+ throw new ExecutableException("Could not
resolve enum value ''{0}'' on class ''{1}''", arg, inner().getName());
return t;
}
@@ -1855,7 +1641,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
return c.<T>newInstance(outer, arg);
return c.<T>newInstance(arg);
}
- throw new ExecutableException("No string constructor or
valueOf(String) method found for class '" + getInnerClass().getName() + "'");
+ throw new ExecutableException("No string constructor or
valueOf(String) method found for class '" + inner().getName() + "'");
}
/**
@@ -1986,7 +1772,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
* @return The passed-in string builder.
*/
protected StringBuilder toString(StringBuilder sb, boolean simple) {
- var n = innerClass.getName();
+ var n = inner().getName();
if (simple) {
var i = n.lastIndexOf('.');
n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ExtendedClassMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ExtendedClassMeta.java
index 6cee5255a0..ac35f4c656 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ExtendedClassMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ExtendedClassMeta.java
@@ -48,5 +48,5 @@ public class ExtendedClassMeta extends ExtendedMeta {
*
* @return The class wrapped by this metadata.
*/
- protected Class<?> getInnerClass() { return cm.getInnerClass(); }
+ protected Class<?> getInnerClass() { return cm.inner(); }
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
index a2d7900aba..645fbd4f2f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
@@ -292,7 +292,7 @@ public class JsonMap extends LinkedHashMap<String,Object> {
* Otherwise, returns c2.
*/
private static ClassMeta<?> getNarrowedClassMeta(ClassMeta<?> c1,
ClassMeta<?> c2) {
- if (c2 == null || c2.isParentOf(c1.getInnerClass()))
+ if (c2 == null || c2.isParentOf(c1.inner()))
return c1;
return c2;
}
@@ -1795,7 +1795,7 @@ public class JsonMap extends LinkedHashMap<String,Object>
{
return (T)m2;
} else if (cm.isBean()) {
- BeanMap<? extends T> bm =
bs.newBeanMap(cm.getInnerClass());
+ BeanMap<? extends T> bm =
bs.newBeanMap(cm.inner());
// Iterate through all the entries in the map
and set the individual field values.
forEach((k, v) -> {
@@ -1820,10 +1820,10 @@ public class JsonMap extends
LinkedHashMap<String,Object> {
}
} catch (Exception e) {
- throw bex(e, cm.getInnerClass(), "Error occurred
attempting to cast to an object of type ''{0}''", cm.getInnerClass().getName());
+ throw bex(e, cm.inner(), "Error occurred attempting to
cast to an object of type ''{0}''", cm.inner().getName());
}
- throw bex(cm.getInnerClass(), "Cannot convert to class type
''{0}''. Only beans and maps can be converted using this method.",
cm.getInnerClass().getName());
+ throw bex(cm.inner(), "Cannot convert to class type ''{0}''.
Only beans and maps can be converted using this method.", cm.inner().getName());
}
private ObjectRest getObjectRest() {
@@ -1845,11 +1845,11 @@ public class JsonMap extends
LinkedHashMap<String,Object> {
if (c1.isMap()) {
ClassMeta<?> k = getNarrowedClassMeta(c1.getKeyType(),
c2.getKeyType());
ClassMeta<?> v =
getNarrowedClassMeta(c1.getValueType(), c2.getValueType());
- return bs().getClassMeta(c.getInnerClass(), k, v);
+ return bs().getClassMeta(c.inner(), k, v);
}
if (c1.isCollection()) {
ClassMeta<?> e =
getNarrowedClassMeta(c1.getElementType(), c2.getElementType());
- return bs().getClassMeta(c.getInnerClass(), e);
+ return bs().getClassMeta(c.inner(), e);
}
return c;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
index cbd28d67ac..56f381efa1 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
@@ -260,7 +260,7 @@ public class HtmlParserSession extends XmlParserSession {
var nameProperty = Value.<String>empty();
beanType.forEachAnnotation(HtmlLink.class, x ->
isNotEmpty(x.uriProperty()), x -> uriProperty.set(x.uriProperty()));
beanType.forEachAnnotation(HtmlLink.class, x ->
isNotEmpty(x.nameProperty()), x -> nameProperty.set(x.nameProperty()));
- BeanMap<T> m = newBeanMap(beanType.getInnerClass());
+ BeanMap<T> m = newBeanMap(beanType.inner());
m.put(uriProperty.orElse(""), href);
m.put(nameProperty.orElse(""), name);
return m.getBean();
@@ -337,7 +337,7 @@ public class HtmlParserSession extends XmlParserSession {
else if (sType.isBoolean())
o = Boolean.parseBoolean(text);
else if (sType.isNumber())
- o = parseNumber(text, (Class<? extends
Number>)eType.getInnerClass());
+ o = parseNumber(text, (Class<? extends
Number>)eType.inner());
else if (sType.canCreateNewInstanceFromString(outer))
o = sType.newInstanceFromString(outer, text);
else
@@ -360,7 +360,7 @@ public class HtmlParserSession extends XmlParserSession {
if (sType.isObject())
o = parseNumber(text, Number.class);
else if (sType.isNumber())
- o = parseNumber(text, (Class<? extends
Number>)sType.getInnerClass());
+ o = parseNumber(text, (Class<? extends
Number>)sType.inner());
else
isValid = false;
skipTag(r, xNUMBER);
@@ -409,10 +409,10 @@ public class HtmlParserSession extends XmlParserSession {
BeanMap m =
toBeanMap(builder.create(this, eType));
o = builder.build(this,
parseIntoBean(r, m).getBean(), eType);
} else if (sType.canCreateNewBean(outer)) {
- BeanMap m = newBeanMap(outer,
sType.getInnerClass());
+ BeanMap m = newBeanMap(outer,
sType.inner());
o = parseIntoBean(r, m).getBean();
} else if
(nn(sType.getProxyInvocationHandler())) {
- BeanMap m = newBeanMap(outer,
sType.getInnerClass());
+ BeanMap m = newBeanMap(outer,
sType.inner());
o = parseIntoBean(r, m).getBean();
} else {
isValid = false;
@@ -599,7 +599,7 @@ public class HtmlParserSession extends XmlParserSession {
BeanMap m =
nn(builder)
? toBeanMap(builder.create(this,
elementType))
- : newBeanMap(l,
elementType.getInnerClass())
+ : newBeanMap(l, elementType.inner())
;
// @formatter:on
for (var key : keys) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 9c6ba9d842..e1a67acdc4 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -471,7 +471,7 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
HtmlClassMeta cHtml = getHtmlClassMeta(sType);
HtmlBeanPropertyMeta bpHtml = getHtmlBeanPropertyMeta(ppMeta);
- Collection c = (sType.isCollection() ? (Collection)in :
toList(sType.getInnerClass(), in));
+ Collection c = (sType.isCollection() ? (Collection)in :
toList(sType.inner(), in));
boolean isCdc = cHtml.isHtmlCdc() || bpHtml.isHtmlCdc();
boolean isSdc = cHtml.isHtmlSdc() || bpHtml.isHtmlSdc();
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 72e20b51e8..b96717854e 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
@@ -3653,7 +3653,7 @@ public class HttpPartSchema {
Class<?> parsedType = Object.class;
if (type == ARRAY) {
if (nn(items))
- parsedType =
Array.newInstance(items.parsedType.getInnerClass(), 0).getClass();
+ parsedType =
Array.newInstance(items.parsedType.inner(), 0).getClass();
} else if (type == BOOLEAN) {
parsedType = Boolean.class;
} else if (type == INTEGER) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
index e62a45d16d..c4b2cdf204 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
@@ -35,6 +35,6 @@ public class SimplePartParserSession extends
BaseHttpPartParserSession {
@Override /* Overridden from HttpPartParserSession */
public <T> T parse(HttpPartType partType, HttpPartSchema schema, String
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException {
- return Mutaters.fromString(toType.getInnerClass(), in);
+ return Mutaters.fromString(toType.inner(), in);
}
}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
index e963461535..b5dacaab5b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
@@ -84,7 +84,7 @@ public class DelegateBeanMap<T> extends BeanMap<T> {
else
bme = this.getProperty(k);
if (bme == null)
- throw bex(super.getClassMeta().getInnerClass(),
"Property ''{0}'' not found on class.", k);
+ throw bex(super.getClassMeta().inner(),
"Property ''{0}'' not found on class.", k);
s.add(bme);
});
return s;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
index 33ef43ff89..09546a0711 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
@@ -263,7 +263,7 @@ public class JsonParserSession extends ReaderParserSession {
} else if (sType.isChar()) {
o = parseCharacter(parseString(r));
} else if (sType.isNumber()) {
- o = parseNumber(r, (Class<? extends
Number>)sType.getInnerClass());
+ o = parseNumber(r, (Class<? extends
Number>)sType.inner());
} else if (sType.isMap()) {
Map m = (sType.canCreateNewInstance(outer) ?
(Map)sType.newInstance(outer) : newGenericMap(sType));
o = parseIntoMap2(r, m, sType.getKeyType(),
sType.getValueType(), pMeta);
@@ -280,7 +280,7 @@ public class JsonParserSession extends ReaderParserSession {
var m = toBeanMap(builder.create(this, eType));
o = builder.build(this, parseIntoBeanMap2(r,
m).getBean(), eType);
} else if (sType.canCreateNewBean(outer)) {
- var m = newBeanMap(outer, sType.getInnerClass());
+ var m = newBeanMap(outer, sType.inner());
o = parseIntoBeanMap2(r, m).getBean();
} else if (sType.canCreateNewInstanceFromString(outer) && (c ==
'\'' || c == '"')) {
o = sType.newInstanceFromString(outer, parseString(r));
@@ -299,9 +299,9 @@ public class JsonParserSession extends ReaderParserSession {
if (m.containsKey(getBeanTypePropertyName(eType)))
o = cast((JsonMap)m, pMeta, eType);
else if (nn(sType.getProxyInvocationHandler()))
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer,
sType.inner()).load(m).getBean();
else
- throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.getInnerClass().getName(),
sType.getNotABeanReason());
+ throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
} else if (sType.canCreateNewInstanceFromString(outer) && !
isStrict()) {
o = sType.newInstanceFromString(outer, parseString(r));
} else {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
index 961fba6aeb..dfc7483f08 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
@@ -416,7 +416,7 @@ public class JsonSerializerSession extends
WriterSerializerSession {
} else if (sType.isCollection()) {
serializeCollection(out, (Collection)o, eType);
} else if (sType.isArray()) {
- serializeCollection(out, toList(sType.getInnerClass(),
o), eType);
+ serializeCollection(out, toList(sType.inner(), o),
eType);
} else if (sType.isReader()) {
pipe((Reader)o, out, SerializerSession::handleThrown);
} else if (sType.isInputStream()) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/BasicBeanDefMapper.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/BasicBeanDefMapper.java
index 94770a3ed0..95236a8ad0 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/BasicBeanDefMapper.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/BasicBeanDefMapper.java
@@ -57,7 +57,7 @@ public class BasicBeanDefMapper implements BeanDefMapper {
@Override /* Overridden from BeanDefMapper */
public String getId(ClassMeta<?> cm) {
- return cm.getSimpleName();
+ return cm.getNameSimple();
}
@Override /* Overridden from BeanDefMapper */
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index c4e465eb80..bd0a5ea426 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -922,7 +922,7 @@ public class JsonSchemaGenerator extends
BeanTraverseContext implements JsonSche
*/
public boolean isIgnoredType(ClassMeta<?> cm) {
for (var p : ignoreTypePatterns)
- if (p.matcher(cm.getSimpleName()).matches() ||
p.matcher(cm.getName()).matches())
+ if (p.matcher(cm.getNameSimple()).matches() ||
p.matcher(cm.getName()).matches())
return true;
return false;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 3d33f6079b..ab127d0deb 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -282,7 +282,7 @@ public class JsonSchemaGeneratorSession extends
BeanTraverseSession {
@SuppressWarnings("unchecked")
private static List<String> getEnums(ClassMeta<?> cm) {
List<String> l = list();
- for (var e :
((Class<Enum<?>>)cm.getInnerClass()).getEnumConstants())
+ for (var e : ((Class<Enum<?>>)cm.inner()).getEnumConstants())
l.add(cm.toString(e));
return l;
}
@@ -417,7 +417,7 @@ public class JsonSchemaGeneratorSession extends
BeanTraverseSession {
if (tc == BEAN) {
var properties = new JsonMap();
- BeanMeta bm =
getBeanMeta(sType.getInnerClass());
+ BeanMeta bm = getBeanMeta(sType.inner());
if (nn(pNames))
bm = new BeanMetaFiltered(bm, pNames);
for (Iterator<BeanPropertyMeta> i =
bm.getPropertyMetas().iterator(); i.hasNext();) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
index e4c2c977ff..7897ee0f38 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
@@ -250,7 +250,7 @@ public class MsgPackParserSession extends
InputStreamParserSession {
}
} else if (nn(builder) ||
sType.canCreateNewBean(outer)) {
if (dt == MAP) {
- BeanMap m = builder == null ?
newBeanMap(outer, sType.getInnerClass()) : toBeanMap(builder.create(this,
eType));
+ BeanMap m = builder == null ?
newBeanMap(outer, sType.inner()) : toBeanMap(builder.create(this, eType));
for (var i = 0; i < length; i++) {
String pName =
parseAnything(string(), is, m.getBean(false), null);
var bpm =
m.getPropertyMeta(pName);
@@ -312,9 +312,9 @@ public class MsgPackParserSession extends
InputStreamParserSession {
if
(m.containsKey(getBeanTypePropertyName(eType)))
o = cast(m, pMeta, eType);
else if (nn(sType.getProxyInvocationHandler()))
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer,
sType.inner()).load(m).getBean();
else
- throw new ParseException(this, "Class
''{0}'' could not be instantiated. Reason: ''{1}''",
sType.getInnerClass().getName(), sType.getNotABeanReason());
+ throw new ParseException(this, "Class
''{0}'' could not be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
} else {
throw new ParseException(this, "Invalid data
type {0} encountered for parse type {1}", dt, sType);
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
index 0702f9e0ba..7f66cedfc4 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
@@ -273,7 +273,7 @@ public class MsgPackSerializerSession extends
OutputStreamSerializerSession {
} else if (sType.isByteArray()) {
out.appendBinary((byte[])o);
} else if (sType.isArray()) {
- serializeCollection(out, toList(sType.getInnerClass(),
o), eType);
+ serializeCollection(out, toList(sType.inner(), o),
eType);
} else if (sType.isReader()) {
pipe((Reader)o, out, SerializerSession::handleThrown);
} else if (sType.isInputStream()) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
index 38ef7a840c..aa3d5968c9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
@@ -398,7 +398,7 @@ public class OpenApiParserSession extends UonParserSession {
var items = schema.getItems();
if (items == null)
items = HttpPartSchema.DEFAULT;
- var o =
Array.newInstance(eType.getInnerClass(), ss.length);
+ var o = Array.newInstance(eType.inner(),
ss.length);
for (var i = 0; i < ss.length; i++)
Array.set(o, i, parse(partType, items,
ss[i], eType));
if (type.hasMutaterFrom(schema.getParsedType())
|| schema.getParsedType().hasMutaterTo(type))
@@ -441,7 +441,7 @@ public class OpenApiParserSession extends UonParserSession {
}
if (type.isBean()) {
- var m =
ctx.getBeanContext().newBeanMap(type.getInnerClass());
+ var m =
ctx.getBeanContext().newBeanMap(type.inner());
for (var s : ss) {
var kv = StringUtils.splita(s,
'=', 2);
if (kv.length != 2)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index 862f5f0935..6928c91973 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -756,7 +756,7 @@ public class ParserSession extends BeanSession {
var cm = getClassMeta(typeName, pMeta, eType);
if (nn(cm)) {
- var bm =
m.getBeanSession().newBeanMap(cm.getInnerClass());
+ var bm = m.getBeanSession().newBeanMap(cm.inner());
// Iterate through all the entries in the map and set
the individual field values.
m.forEach((k, v) -> {
@@ -800,7 +800,7 @@ public class ParserSession extends BeanSession {
if (sType.isChar())
o = parseCharacter(s);
else if (sType.isNumber())
- o = parseNumber(s, (Class<? extends
Number>)sType.getInnerClass());
+ o = parseNumber(s, (Class<? extends
Number>)sType.inner());
else if (sType.isBoolean())
o = Boolean.parseBoolean(s);
else if (! (sType.isCharSequence() || sType.isObject())) {
@@ -1074,7 +1074,7 @@ public class ParserSession extends BeanSession {
if (nn(value) || ! isIgnoreUnknownNullBeanProperties())
throw new ParseException(this, "Unknown
property ''{0}'' encountered while trying to parse into class ''{1}''",
propertyName, beanMap.getClassMeta());
if (nn(listener))
- listener.onUnknownBeanProperty(this, propertyName,
beanMap.getClassMeta().getInnerClass(), beanMap.getBean());
+ listener.onUnknownBeanProperty(this, propertyName,
beanMap.getClassMeta().inner(), beanMap.getBean());
}
@Override /* Overridden from ContextSession */
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 a80f75e926..ebbab39da9 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
@@ -385,7 +385,7 @@ public class ParserSet {
}
private Object createBuilder(Object o) {
- if (o instanceof Class o2) {
+ if (o instanceof Class<?> o2) {
// Check for no-arg constructor.
var ci = info(o2).getPublicConstructor(c ->
c.getParameterCount() == 0).orElse(null);
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 6f155116d5..434f862864 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
@@ -381,7 +381,7 @@ public class SerializerSet {
}
private Object createBuilder(Object o) {
- if (o instanceof Class o2) {
+ if (o instanceof Class<?> o2) {
// Check for no-arg constructor.
var ci = info(o2).getPublicConstructor(c ->
c.getParameterCount() == 0).orElse(null);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/InputStreamSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/InputStreamSwap.java
index 51dd3a6d73..7e61948657 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/InputStreamSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/InputStreamSwap.java
@@ -119,7 +119,7 @@ public abstract class InputStreamSwap extends
StringSwap<InputStream> {
* @return The byte array.
*/
protected InputStream toStream(byte[] b, ClassMeta<?> hint) {
- var c = hint == null ? InputStream.class : hint.getInnerClass();
+ var c = hint == null ? InputStream.class : hint.inner();
if (c == InputStream.class || c == ByteArrayInputStream.class)
return new ByteArrayInputStream(b);
return null;
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 aa88b886f3..61ce3f65d5 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
@@ -385,7 +385,7 @@ public class TemporalSwap extends StringSwap<Temporal> {
return null;
if (hint == null)
hint = session.getClassMeta(Instant.class);
- var tc = (Class<? extends Temporal>)hint.getInnerClass();
+ var tc = (Class<? extends Temporal>)hint.inner();
var offset = session.getTimeZoneId();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index dbb9f62939..c93649832d 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -365,7 +365,7 @@ public class UonParserSession extends ReaderParserSession
implements HttpPartPar
} else if (sType.isChar()) {
o = parseCharacter(parseString(r, isUrlParamValue));
} else if (sType.isNumber()) {
- o = parseNumber(r, (Class<? extends
Number>)sType.getInnerClass());
+ o = parseNumber(r, (Class<? extends
Number>)sType.inner());
} else if (sType.isMap()) {
var m = (sType.canCreateNewInstance(outer) ?
(Map)sType.newInstance(outer) : newGenericMap(sType));
o = parseIntoMap(r, m, sType.getKeyType(),
sType.getValueType(), pMeta);
@@ -391,7 +391,7 @@ public class UonParserSession extends ReaderParserSession
implements HttpPartPar
m = parseIntoBeanMap(r, m);
o = m == null ? null : builder.build(this, m.getBean(),
eType);
} else if (sType.canCreateNewBean(outer)) {
- var m = newBeanMap(outer, sType.getInnerClass());
+ var m = newBeanMap(outer, sType.inner());
m = parseIntoBeanMap(r, m);
o = m == null ? null : m.getBean();
} else if (sType.canCreateNewInstanceFromString(outer)) {
@@ -422,14 +422,14 @@ public class UonParserSession extends ReaderParserSession
implements HttpPartPar
if (m.containsKey(getBeanTypePropertyName(sType)))
o = cast(m, pMeta, eType);
else if (nn(sType.getProxyInvocationHandler()))
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer,
sType.inner()).load(m).getBean();
else
- throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.getInnerClass().getName(),
sType.getNotABeanReason());
+ throw new ParseException(this, "Class ''{0}''
could not be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
} else if (c == 'n') {
r.read(); // NOSONAR - Intentional.
parseNull(r);
} else {
- throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}''", sType.getInnerClass().getName(),
sType.getNotABeanReason());
+ throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}''", sType.inner().getName(),
sType.getNotABeanReason());
}
if (o == null && sType.isPrimitive())
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java
index 2cd0d29181..f4c7bd71de 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java
@@ -473,7 +473,7 @@ public class UonSerializerSession extends
WriterSerializerSession implements Htt
} else if (sType.isCollection()) {
serializeCollection(out, (Collection)o, eType);
} else if (sType.isArray()) {
- serializeCollection(out, toList(sType.getInnerClass(),
o), eType);
+ serializeCollection(out, toList(sType.inner(), o),
eType);
} else if (sType.isReader()) {
pipe((Reader)o, out, SerializerSession::handleThrown);
} else if (sType.isInputStream()) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
index 6b4fad715a..d9ba3b908b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
@@ -253,7 +253,7 @@ public class UrlEncodingParserSession extends
UonParserSession {
m = parseIntoBeanMap(r, m);
o = m == null ? null : builder.build(this, m.getBean(),
eType);
} else if (sType.canCreateNewBean(outer)) {
- var m = newBeanMap(outer, sType.getInnerClass());
+ var m = newBeanMap(outer, sType.inner());
m = parseIntoBeanMap(r, m);
o = m == null ? null : m.getBean();
} else if (sType.isCollection() || sType.isArray() ||
sType.isArgs()) {
@@ -265,7 +265,7 @@ public class UrlEncodingParserSession extends
UonParserSession {
if (sType.isArgs())
o = c2.toArray(new Object[c2.size()]);
else if (sType.isArray())
- o = CollectionUtils.toArray(c2,
sType.getElementType().getInnerClass());
+ o = CollectionUtils.toArray(c2,
sType.getElementType().inner());
else
o = c2;
} else {
@@ -277,7 +277,7 @@ public class UrlEncodingParserSession extends
UonParserSession {
else if (m.containsKey("_value"))
o = convertToType(m.get("_value"), sType);
else if (nn(sType.getProxyInvocationHandler())) {
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer,
sType.inner()).load(m).getBean();
} else {
if (nn(sType.getNotABeanReason()))
throw new ParseException(this, "Class
''{0}'' could not be instantiated as application/x-www-form-urlencoded.
Reason: ''{1}''", sType, sType.getNotABeanReason());
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
index f9888dcee5..d654e42fbc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java
@@ -44,7 +44,7 @@ public class XmlBeanMeta extends ExtendedBeanMeta {
XmlFormat contentFormat = DEFAULT;
XmlBeanMetaBuilder(BeanMeta<?> beanMeta, XmlMetaProvider mp) {
- var c = beanMeta.getClassMeta().getInnerClass();
+ var c = beanMeta.getClassMeta().inner();
var ci = beanMeta.getClassMeta();
var defaultFormat = Value.<XmlFormat>empty();
@@ -121,7 +121,7 @@ public class XmlBeanMeta extends ExtendedBeanMeta {
public XmlBeanMeta(BeanMeta<?> beanMeta, XmlMetaProvider mp) {
super(beanMeta);
- var c = beanMeta.getClassMeta().getInnerClass();
+ var c = beanMeta.getClassMeta().inner();
var b = new XmlBeanMetaBuilder(beanMeta, mp);
attrs = u(b.attrs);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
index af6c64ed07..528ad46887 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlBeanPropertyMeta.java
@@ -118,7 +118,7 @@ public class XmlBeanPropertyMeta extends
ExtendedBeanPropertyMeta {
String cen = xml.childName();
if ((! cen.isEmpty()) && (! isCollection))
- throw bex(cmProperty.getInnerClass(), "Annotation error
on property ''{0}''. @Xml.childName can only be specified on collections and
arrays.", name);
+ throw bex(cmProperty.inner(), "Annotation error on
property ''{0}''. @Xml.childName can only be specified on collections and
arrays.", name);
if (xmlFormat == XmlFormat.COLLAPSED) {
if (isCollection) {
@@ -129,7 +129,7 @@ public class XmlBeanPropertyMeta extends
ExtendedBeanPropertyMeta {
if (cen == null || cen.isEmpty())
cen = name;
} else {
- throw bex(cmBean.getInnerClass(), "Annotation
error on property ''{0}''. @Xml.format=COLLAPSED can only be specified on
collections and arrays.", name);
+ throw bex(cmBean.inner(), "Annotation error on
property ''{0}''. @Xml.format=COLLAPSED can only be specified on collections
and arrays.", name);
}
if (cen.isEmpty() && isCollection)
cen = cmProperty.getDictionaryName();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index bdf44fa41b..13ededf3bc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -848,11 +848,11 @@ public class XmlParserSession extends ReaderParserSession
{
var l = (sType.canCreateNewInstance(outer) ?
(Collection)sType.newInstance(outer) : new JsonList(this));
o = parseIntoCollection(r, l, sType, pMeta);
} else if (sType.isNumber()) {
- o = parseNumber(getElementText(r), (Class<? extends
Number>)sType.getInnerClass());
+ o = parseNumber(getElementText(r), (Class<? extends
Number>)sType.inner());
} else if (nn(builder) || sType.canCreateNewBean(outer)) {
if (getXmlClassMeta(sType).getFormat() == COLLAPSED) {
var fieldName = r.getLocalName();
- var m = nn(builder) ?
toBeanMap(builder.create(this, eType)) : newBeanMap(outer,
sType.getInnerClass());
+ var m = nn(builder) ?
toBeanMap(builder.create(this, eType)) : newBeanMap(outer, sType.inner());
var bpm =
getXmlBeanMeta(m.getMeta()).getPropertyMeta(fieldName);
var cm = m.getMeta().getClassMeta();
Object value = parseAnything(cm, currAttr, r,
m.getBean(false), false, null);
@@ -860,7 +860,7 @@ public class XmlParserSession extends ReaderParserSession {
bpm.set(m, currAttr, value);
o = nn(builder) ? builder.build(this,
m.getBean(), eType) : m.getBean();
} else {
- var m = nn(builder) ?
toBeanMap(builder.create(this, eType)) : newBeanMap(outer,
sType.getInnerClass());
+ var m = nn(builder) ?
toBeanMap(builder.create(this, eType)) : newBeanMap(outer, sType.inner());
m = parseIntoBean(r, m, isNil);
o = nn(builder) ? builder.build(this,
m.getBean(), eType) : m.getBean();
}
@@ -874,9 +874,9 @@ public class XmlParserSession extends ReaderParserSession {
parseIntoMap(r, m, string(), object(), pMeta);
if (nn(wrapperAttr))
m = new JsonMap(this).append(wrapperAttr, m);
- o = newBeanMap(outer,
sType.getInnerClass()).load(m).getBean();
+ o = newBeanMap(outer, sType.inner()).load(m).getBean();
} else {
- throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}'', property: ''{2}''",
sType.getInnerClass().getName(), sType.getNotABeanReason(),
+ throw new ParseException(this, "Class ''{0}'' could not
be instantiated. Reason: ''{1}'', property: ''{2}''", sType.inner().getName(),
sType.getNotABeanReason(),
pMeta == null ? null : pMeta.getName());
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index 6349ed7ef9..d5d51f36ae 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -506,7 +506,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
var eeType = eType.getElementType();
- var c = (sType.isCollection() ? (Collection)in :
toList(sType.getInnerClass(), in));
+ var c = (sType.isCollection() ? (Collection)in :
toList(sType.inner(), in));
var type2 = (String)null;
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
index 856fccaa47..b91cbe7634 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
@@ -907,7 +907,7 @@ public class RestResponse implements HttpResponse,
AutoCloseable {
@SuppressWarnings("unchecked")
<T> T as(ResponseBeanMeta rbm) {
- var c = (Class<T>)rbm.getClassMeta().getInnerClass();
+ var c = (Class<T>)rbm.getClassMeta().inner();
final RestClient rc = this.client;
return (T)Proxy.newProxyInstance(c.getClassLoader(), a(c),
(InvocationHandler)(proxy, method, args) -> {
var pm = rbm.getProperty(method.getName());
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index af368e0b3e..c81104fc11 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1158,7 +1158,7 @@ public class RestRequest extends
HttpServletRequestWrapper {
*/
public <T> T getRequest(RequestBeanMeta rbm) {
try {
- var c = (Class<T>)rbm.getClassMeta().getInnerClass();
+ var c = (Class<T>)rbm.getClassMeta().inner();
final BeanSession bs = getBeanSession();
final BeanMeta<T> bm = bs.getBeanMeta(c);
return (T)Proxy.newProxyInstance(c.getClassLoader(),
a(c), (InvocationHandler)(proxy, method, args) -> {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
index 9419fa9fb0..282e37babc 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
@@ -193,7 +193,7 @@ public class FormDataArg implements RestOpArg {
if (multi) {
Collection c = cm.isArray() ? list() :
(Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new JsonList());
rh.getAll(name).stream().map(x ->
x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x ->
c.add(x));
- return cm.isArray() ? toArray(c,
cm.getElementType().getInnerClass()) : c;
+ return cm.isArray() ? toArray(c,
cm.getElementType().inner()) : c;
}
if (cm.isMapOrBean() && isOneOf(name, "*", "")) {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
index 115daac333..fdd6fbbbb4 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
@@ -239,7 +239,7 @@ public class HeaderArg implements RestOpArg {
if (multi) {
var c = cm.isArray() ? list() :
(Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new JsonList());
rh.stream(name).map(x ->
x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x ->
c.add(x));
- return cm.isArray() ? toArray(c,
cm.getElementType().getInnerClass()) : c;
+ return cm.isArray() ? toArray(c,
cm.getElementType().inner()) : c;
}
if (cm.isMapOrBean() && isOneOf(name, "*", "")) {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
index 412b92179a..1f692d3608 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
@@ -194,7 +194,7 @@ public class QueryArg implements RestOpArg {
if (multi) {
var c = cm.isArray() ? list() :
(Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new JsonList());
rh.getAll(name).stream().map(x ->
x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x ->
c.add(x));
- return cm.isArray() ? toArray(c,
cm.getElementType().getInnerClass()) : c;
+ return cm.isArray() ? toArray(c,
cm.getElementType().inner()) : c;
}
if (cm.isMapOrBean() && isOneOf(name, "*", "")) {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/rrpc/RrpcRestOpContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/rrpc/RrpcRestOpContext.java
index b45be5f847..ba1c66abd2 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/rrpc/RrpcRestOpContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/rrpc/RrpcRestOpContext.java
@@ -47,7 +47,7 @@ public class RrpcRestOpContext extends RestOpContext {
super(builder);
var interfaceClass =
getBeanContext().getClassMeta(getJavaMethod().getGenericReturnType());
- meta = new RrpcInterfaceMeta(interfaceClass.getInnerClass(),
null);
+ meta = new RrpcInterfaceMeta(interfaceClass.inner(), null);
if (meta.getMethodsByPath().isEmpty())
throw new InternalServerError("Method {0} returns an
interface {1} that doesn't define any remote methods.",
getJavaMethod().getName(), interfaceClass.getNameFull());
diff --git a/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java
index 7d207185de..a281f19f00 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java
@@ -662,15 +662,15 @@ class BeanMap_Test extends TestBase {
//====================================================================================================
@Test void a11_automaticDetectionOfGenericTypes() {
var bm = BeanContext.DEFAULT.newBeanMap(I.class);
- assertEquals(String.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Integer.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Object.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Integer.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Integer.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(Object.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Object.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
+ assertEquals(String.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Integer.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Object.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(String.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Integer.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(String.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Integer.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(Object.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Object.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().inner());
}
public static class I {
@@ -687,15 +687,15 @@ class BeanMap_Test extends TestBase {
//====================================================================================================
@Test void a12_overridingDetectionOfGenericTypes() {
var bm = BeanContext.DEFAULT.newBeanMap(J.class);
- assertEquals(Float.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Object.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(Object.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
+ assertEquals(Float.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Float.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Float.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Object.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(Object.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(String.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().inner());
}
public static class J {
@@ -712,15 +712,15 @@ class BeanMap_Test extends TestBase {
//====================================================================================================
@Test void a13_overridingDetectionOfGenericTypes2() {
var bm = bc.newBeanMap(K.class);
- assertEquals(Float.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().getInnerClass());
- assertEquals(String.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().getInnerClass());
- assertEquals(Float.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().getInnerClass());
+ assertEquals(Float.class,
bm.getProperty("p1").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Float.class,
bm.getProperty("p2").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(Float.class,
bm.getProperty("p3").getMeta().getClassMeta().getElementType().inner());
+ assertEquals(String.class,
bm.getProperty("p4").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p4").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(String.class,
bm.getProperty("p5").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p5").getMeta().getClassMeta().getValueType().inner());
+ assertEquals(String.class,
bm.getProperty("p6").getMeta().getClassMeta().getKeyType().inner());
+ assertEquals(Float.class,
bm.getProperty("p6").getMeta().getClassMeta().getValueType().inner());
}
public static class K {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/ClassMeta_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/ClassMeta_Test.java
index aec4b4f7ac..71d7f5ae3d 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/ClassMeta_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/ClassMeta_Test.java
@@ -43,18 +43,18 @@ class ClassMeta_Test extends TestBase {
assertTrue(t.isMap());
assertFalse(t.isCollection());
assertNull(t.newInstance());
- assertEquals(Map.class, t.getInnerClass());
- assertEquals(String.class, t.getKeyType().getInnerClass());
- assertEquals(String.class, t.getValueType().getInnerClass());
+ assertEquals(Map.class, t.inner());
+ assertEquals(String.class, t.getKeyType().inner());
+ assertEquals(String.class, t.getValueType().inner());
}
public String fb;
@Test void a02_string() throws Exception {
var t =
bc.getClassMeta(this.getClass().getField("fb").getGenericType());
- assertEquals(String.class, t.getInnerClass());
+ assertEquals(String.class, t.inner());
var t2 =
bc.getClassMeta(this.getClass().getField("fb").getType());
- assertEquals(String.class, t2.getInnerClass());
+ assertEquals(String.class, t2.inner());
}
public Map<String,Map<String,Integer>> fc;
@@ -126,11 +126,11 @@ class ClassMeta_Test extends TestBase {
assertNull(hc1.getSwap(bs));
assertNull(hi2.getSwap(bs));
assertNull(hc2.getSwap(bs));
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
BI1.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
BC1.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
BI2.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
BC2.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), BI1.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), BC1.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), BI2.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), BC2.class);
bc2 = BeanContext.create().swaps(BI1Swap.class).build();
bs = bc2.getSession();
@@ -149,11 +149,11 @@ class ClassMeta_Test extends TestBase {
assertEquals(hc1.getSwap(bs).getClass(), BI1Swap.class);
assertEquals(hi2.getSwap(bs).getClass(), BI1Swap.class);
assertEquals(hc2.getSwap(bs).getClass(), BI1Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
bc2 = BeanContext.create().swaps(BC1Swap.class).build();
bs = bc2.getSession();
@@ -172,11 +172,11 @@ class ClassMeta_Test extends TestBase {
assertEquals(hc1.getSwap(bs).getClass(), BC1Swap.class);
assertNull(hi2.getSwap(bs));
assertEquals(hc2.getSwap(bs).getClass(), BC1Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
BI1.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
BI2.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), BI1.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), BI2.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
bc2 = BeanContext.create().swaps(BI2Swap.class).build();
bs = bc2.getSession();
@@ -195,11 +195,11 @@ class ClassMeta_Test extends TestBase {
assertNull(hc1.getSwap(bs));
assertEquals(hi2.getSwap(bs).getClass(), BI2Swap.class);
assertEquals(hc2.getSwap(bs).getClass(), BI2Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
BI1.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
BC1.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), BI1.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), BC1.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
bc2 = BeanContext.create().swaps(BC2Swap.class).build();
bs = bc2.getSession();
@@ -218,11 +218,11 @@ class ClassMeta_Test extends TestBase {
assertNull(hc1.getSwap(bs));
assertNull(hi2.getSwap(bs));
assertEquals(hc2.getSwap(bs).getClass(), BC2Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
BI1.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
BC1.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
BI2.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), BI1.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), BC1.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), BI2.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
bc2 =
BeanContext.create().swaps(BI1Swap.class,BC1Swap.class,BI2Swap.class,
BC2Swap.class).build();
bs = bc2.getSession();
@@ -241,11 +241,11 @@ class ClassMeta_Test extends TestBase {
assertEquals(hc1.getSwap(bs).getClass(), BI1Swap.class);
assertEquals(hi2.getSwap(bs).getClass(), BI1Swap.class);
assertEquals(hc2.getSwap(bs).getClass(), BI1Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
bc2 =
BeanContext.create().swaps(BC2Swap.class,BI2Swap.class,BC1Swap.class,
BI1Swap.class).build();
bs = bc2.getSession();
@@ -264,11 +264,11 @@ class ClassMeta_Test extends TestBase {
assertEquals(hc1.getSwap(bs).getClass(), BC1Swap.class);
assertEquals(hi2.getSwap(bs).getClass(), BI2Swap.class);
assertEquals(hc2.getSwap(bs).getClass(), BC2Swap.class);
- assertEquals(ooo.getSerializedClassMeta(bs).getInnerClass(),
Object.class);
- assertEquals(hi1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc1.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hi2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
- assertEquals(hc2.getSerializedClassMeta(bs).getInnerClass(),
Map.class);
+ assertEquals(ooo.getSerializedClassMeta(bs).inner(),
Object.class);
+ assertEquals(hi1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc1.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hi2.getSerializedClassMeta(bs).inner(), Map.class);
+ assertEquals(hc2.getSerializedClassMeta(bs).inner(), Map.class);
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
index 079c5ef77f..215619021c 100755
---
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
@@ -755,8 +755,8 @@ class ObjectRest_Test extends TestBase {
//====================================================================================================
@Test void f04_getClassMeta() {
var model = ObjectRest.create(new AddressBook().init());
- assertEquals("Person",
model.getClassMeta("0").getInnerClass().getSimpleName());
- assertEquals("String",
model.getClassMeta("0/addresses/0/state").getInnerClass().getSimpleName());
+ assertEquals("Person",
model.getClassMeta("0").inner().getSimpleName());
+ assertEquals("String",
model.getClassMeta("0/addresses/0/state").inner().getSimpleName());
assertNull(model.getClassMeta("1"));
assertNull(model.getClassMeta("0/addresses/1/state"));
}