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);
 	}
 
 	/**