You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/02/04 15:48:22 UTC
incubator-juneau git commit: Improvements to ClassMeta class.
Repository: incubator-juneau
Updated Branches:
refs/heads/master 5bfa6fcbe -> 59926a2e8
Improvements to ClassMeta class.
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/59926a2e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/59926a2e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/59926a2e
Branch: refs/heads/master
Commit: 59926a2e8e2d54de8677fa4fef8bcdfdfd54f2c4
Parents: 5bfa6fc
Author: JamesBognar <ja...@apache.org>
Authored: Sat Feb 4 10:48:18 2017 -0500
Committer: JamesBognar <ja...@apache.org>
Committed: Sat Feb 4 10:48:18 2017 -0500
----------------------------------------------------------------------
.../main/java/org/apache/juneau/ClassMeta.java | 48 +++++++++-----------
1 file changed, 21 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/59926a2e/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
index 873f300..39bac60 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
@@ -53,11 +53,11 @@ public final class ClassMeta<T> implements Type {
/** Class categories. */
enum ClassCategory {
- MAP, COLLECTION, CLASS, NUMBER, DECIMAL, BOOLEAN, CHAR, DATE, ARRAY, ENUM, BEAN, UNKNOWN, OTHER, CHARSEQ, STR, OBJ, URI, BEANMAP, READER, INPUTSTREAM
+ MAP, COLLECTION, CLASS, NUMBER, DECIMAL, BOOLEAN, CHAR, DATE, ARRAY, ENUM, OTHER, CHARSEQ, STR, OBJ, URI, BEANMAP, READER, INPUTSTREAM
}
final BeanContext beanContext; // The bean context that created this object.
- ClassCategory classCategory = UNKNOWN; // The class category.
+ ClassCategory classCategory = OTHER; // The class category.
final Class<T> innerClass; // The class being wrapped.
ClassMeta<?>
serializedClassMeta, // The transformed class type (if class has swap associated with it).
@@ -339,7 +339,7 @@ public final class ClassMeta<T> implements Type {
// 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.
- else if (classCategory == UNKNOWN) {
+ else if (classCategory == OTHER) {
BeanMeta newMeta = null;
try {
@@ -349,12 +349,8 @@ public final class ClassMeta<T> implements Type {
notABeanReason = e.getMessage();
throw e;
}
- if (notABeanReason != null)
- classCategory = OTHER;
- else {
+ if (notABeanReason == null)
beanMeta = newMeta;
- classCategory = BEAN;
- }
}
if (c.isPrimitive()) {
@@ -663,7 +659,7 @@ public final class ClassMeta<T> implements Type {
* @return <jk>true</jk> if this class is a subclass of {@link Map} or it's a bean.
*/
public boolean isMapOrBean() {
- return classCategory == MAP || classCategory == BEANMAP || classCategory == BEAN;
+ return classCategory == MAP || classCategory == BEANMAP || beanMeta != null;
}
/**
@@ -726,7 +722,7 @@ public final class ClassMeta<T> implements Type {
* @return <jk>true</jk> if this class is a bean.
*/
public boolean isBean() {
- return classCategory == BEAN;
+ return beanMeta != null;
}
/**
@@ -1341,25 +1337,23 @@ public final class ClassMeta<T> implements Type {
int i = n.lastIndexOf('.');
n = n.substring(i == -1 ? 0 : i+1).replace('$', '.');
}
- switch(classCategory) {
- case ARRAY:
- return elementType.toString(sb, simple).append('[').append(']');
- case MAP:
- return sb.append(n).append(keyType.isObject() && valueType.isObject() ? "" : "<"+keyType.toString(simple)+","+valueType.toString(simple)+">");
- case BEANMAP:
- return sb.append(BeanMap.class.getName()).append('<').append(n).append('>');
- case COLLECTION:
- return sb.append(n).append(elementType.isObject() ? "" : "<"+elementType.toString(simple)+">");
- case OTHER:
- if (simple)
- return sb.append(n);
- sb.append("OTHER-").append(n).append(",notABeanReason=").append(notABeanReason);
- if (initException != null)
- sb.append(",initException=").append(initException);
- return sb;
- default:
+ if (classCategory == ARRAY)
+ return elementType.toString(sb, simple).append('[').append(']');
+ if (classCategory == MAP)
+ return sb.append(n).append(keyType.isObject() && valueType.isObject() ? "" : "<"+keyType.toString(simple)+","+valueType.toString(simple)+">");
+ if (classCategory == BEANMAP)
+ return sb.append(BeanMap.class.getName()).append('<').append(n).append('>');
+ if (classCategory == COLLECTION)
+ return sb.append(n).append(elementType.isObject() ? "" : "<"+elementType.toString(simple)+">");
+ if (classCategory == OTHER && beanMeta == null) {
+ if (simple)
return sb.append(n);
+ sb.append("OTHER-").append(n).append(",notABeanReason=").append(notABeanReason);
+ if (initException != null)
+ sb.append(",initException=").append(initException);
+ return sb;
}
+ return sb.append(n);
}
/**