protected ClassInfoImpl getDelayableClassInfo ( Type type ) { String typeClassName = type . getClassName ( ) ; if ( tc . isDebugEnabled ( ) ) { // Type 'toString' answers the descriptor; // show the type class name, too, for clarity. Tr . debug ( tc , MessageFormat . format ( "[ {0} ] ENTER [ {1} ] [ {2} ]" , new Object [ ] { getHashText ( ) , type , typeClassName } ) ) ; } // Now that we have the type class name, pass it along instead // of recomputing when needed. ClassInfoImpl classInfo ; String classInfoCase ; int sort = type . getSort ( ) ; if ( sort == Type . ARRAY ) { classInfo = getArrayClassInfo ( typeClassName , type ) ; classInfoCase = "array class" ; } else if ( sort == Type . OBJECT ) { classInfo = getDelayableClassInfo ( typeClassName , DO_NOT_ALLOW_PRIMITIVE ) ; if ( classInfo . isJavaClass ( ) ) { if ( classInfo . isDelayedClass ( ) ) { classInfoCase = "java delayed" ; } else { classInfoCase = "java non-delayed" ; } } else { if ( classInfo . isDelayedClass ( ) ) { classInfoCase = "non-java delayed" ; } else { classInfoCase = "non-java non-delayed" ; } } } else { classInfo = getPrimitiveClassInfo ( typeClassName , type ) ; classInfoCase = "primitive class" ; } if ( tc . isDebugEnabled ( ) ) { Tr . debug ( tc , MessageFormat . format ( "[ {0} ] RETURN [ {1} ] [ {2} ]" , new Object [ ] { getHashText ( ) , classInfo . getHashText ( ) , classInfoCase } ) ) ; } return classInfo ; }
For array types the previous implementation used the element name .