private <T> DrawableTypeRequest<T> loadGeneric(Class<T> modelClass) {
        ModelLoader<T, InputStream> streamModelLoader = Glide.buildStreamModelLoader(modelClass, context);
        ModelLoader<T, ParcelFileDescriptor> fileDescriptorModelLoader =
                Glide.buildFileDescriptorModelLoader(modelClass, context);
        if (modelClass != null && streamModelLoader == null && fileDescriptorModelLoader == null) {
            throw new IllegalArgumentException("Unknown type " + modelClass + ". You must provide a Model of a type for"
                    + " which there is a registered ModelLoader, if you are using a custom model, you must first call"
                    + " Glide#register with a ModelLoaderFactory for your custom model class");
        }

        return optionsApplier.apply(
                new DrawableTypeRequest<T>(modelClass, streamModelLoader, fileDescriptorModelLoader, context,
                        glide, requestTracker, lifecycle, optionsApplier));
    }
Returns a request builder that can be used for multiple loads that uses the
{@link com.bumptech.glide.load.model.ModelLoaderFactory}s registered for the given model class for
{@link InputStream}s and {@link ParcelFileDescriptor}s to load a thumbnail from objects of
the given modelClass.

<p>
    Note - you must use {@link DrawableRequestBuilder#load(Object)}} to set a concrete model
    to be loaded before calling
    {@link DrawableRequestBuilder#into(com.bumptech.glide.request.target.Target)}. You may
    also use this object for repeated loads by calling <code>request.load(model).into(target)</code>. You may
    also adjust the options after calling {@link DrawableRequestBuilder#load(Object)}} and/or
    {@link DrawableRequestBuilder#into(com.bumptech.glide.request.target.Target)}}. However,
    keep in mind that any changes in options will apply to all future loads.
</p>

@param modelClass The class of model requests built by this class will load data from.
@param <T> The type of the model.
core/src/main/java/com/bumptech/glide/RequestManager.java