INNER CODE UNIT · Java
ViewModelProviderFactory
janishar/android-mvvm-architecture · app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java:15
public class ViewModelProviderFactory<T extends ViewModel> extends ViewModelProvider.NewInstanceFactory {
private final Class<T> viewModelClass;
private final Supplier<T> viewModelSupplier;
public ViewModelProviderFactory(Class<T> viewModelClass, Supplier<T> viewModelSupplier){
this.viewModelClass = viewModelClass;
this.viewModelSupplier = viewModelSupplier;
}
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
if(modelClass.isAssignableFrom(viewModelClass)){
return (T) viewModelSupplier.get();
}else {
throw new IllegalArgumentException("Unknown Class name "+viewModelClass.getName());