static String getTypeString(DocEnv env, Type t, boolean full) {
        // TODO: should annotations be included here?
        if (t.isAnnotated()) {
            t = t.unannotatedType();
        }
        switch (t.getTag()) {
        case ARRAY:
            StringBuilder s = new StringBuilder();
            while (t.hasTag(ARRAY)) {
                s.append("[]");
                t = env.types.elemtype(t);
            }
            s.insert(0, getTypeString(env, t, full));
            return s.toString();
        case CLASS:
            return ParameterizedTypeImpl.
                        parameterizedTypeToString(env, (ClassType)t, full);
        case WILDCARD:
            Type.WildcardType a = (Type.WildcardType)t;
            return WildcardTypeImpl.wildcardTypeToString(env, a, full);
        default:
            return t.tsym.getQualifiedName().toString();
        }
    }
static String getTypeString ( DocEnv env , Type t , boolean full ) { if ( t . isAnnotated ( ) ) { t = t . unannotatedType ( ) ; } switch ( t . getTag ( ) ) { case ARRAY : StringBuilder s = new StringBuilder ( ) ; while ( t . hasTag ( ARRAY ) ) { s . append ( "[]" ) ; t = env . types . elemtype ( t ) ; } s . insert ( 0 , getTypeString ( env , t , full ) ) ; return s . toString ( ) ; case CLASS : return ParameterizedTypeImpl . parameterizedTypeToString ( env , ( ClassType ) t , full ) ; case WILDCARD : Type . WildcardType a = ( Type . WildcardType ) t ; return WildcardTypeImpl . wildcardTypeToString ( env , a , full ) ; default : return t . tsym . getQualifiedName ( ) . toString ( ) ; } }
Return the string representation of a type use.  Bounds of type
variables are not included; bounds of wildcard types are.
Class names are qualified if "full" is true.