question: public static TypeMirror upperBound ( TypeMirror type ) { do { if ( type instanceof TypeVariable ) { TypeVariable tvar = ( TypeVariable ) type ; if ( tvar . getUpperBound ( ) != null ) { type = tvar . getUpperBound ( ) ; } else { break ; } } else if ( type instanceof WildcardType ) { WildcardType wc = ( WildcardType ) type ; if ( wc . getExtendsBound ( ) != null ) { type = wc . getExtendsBound ( ) ; } else { break ; } } else { break ; } } while ( true ) ; return type ; }
target:  If the argument is a bounded TypeVariable or WildcardType, return its non-variable, non-wildcard upper bound.  Otherwise, return the type itself.