code: public <T extends ConfigurationOptionProvider> T getConfig(Class<T> configClass) {
  		final T config = (T) optionProvidersByClass.get(configClass);
  		if (config != null) {
  			return config;
  		} else {
  			for (Class<? extends ConfigurationOptionProvider> storedConfigClass : optionProvidersByClass.keySet()) {
  				if (configClass.isAssignableFrom(storedConfigClass)) {
  					return (T) optionProvidersByClass.get(storedConfigClass);
  				}
  			}
  			return null;
  		}
  	}
docs: Returns a {@link ConfigurationOptionProvider} whose {@link ConfigurationOption}s are populated
  
  @param configClass the {@link ConfigurationOptionProvider} class
  @param <T>         the type
  @return a {@link ConfigurationOptionProvider} whose {@link ConfigurationOption}s are populated