private void addExposedTypes(TypeVariable type,Class<?> cause){
  if (done(type)) {
    return;
  }
  visit(type);
  for (  Type bound : type.getBounds()) {
    logger.debug("Adding exposed types from {}, which is a type bound on {}",bound,type);
    addExposedTypes(bound,cause);
  }
}

private void addExposedTypes ( TypeVariable type , Class < ? > cause ) { if ( done ( type ) ) { return ; } visit ( type ) ; for ( Type bound : type . getBounds ( ) ) { logger . debug ( "Adding exposed types from {}, which is a type bound on {}" , bound , type ) ; addExposedTypes ( bound , cause ) ; } }
adds any types exposed to this set . these will come from the ( possibly absent ) bounds on the type variable .
