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 <[email protected]>
Authored: Sat Feb 4 10:48:18 2017 -0500
Committer: JamesBognar <[email protected]>
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);
        }
 
        /**

Reply via email to