77public class ViewModelService {
88
99 private static volatile ViewModelService sInstance ;
10- public final ConcurrentHashMap <String , AbstractViewModel <? extends IView >> mViewModelCache ;
10+ private final ConcurrentHashMap <String , AbstractViewModel <? extends IView >> mViewModelCache ;
1111
1212 @ NonNull
1313 public static ViewModelService getInstance () {
@@ -22,7 +22,7 @@ public static ViewModelService getInstance() {
2222 }
2323
2424 private ViewModelService () {
25- mViewModelCache = new ConcurrentHashMap <String , AbstractViewModel <? extends IView > >();
25+ mViewModelCache = new ConcurrentHashMap <>();
2626 }
2727
2828 public boolean remove (String key ) {
@@ -33,25 +33,25 @@ public static class ViewModelWrapper<T extends IView> {
3333 public final AbstractViewModel <T > viewModel ;
3434 public final boolean wasCreated ;
3535
36- private ViewModelWrapper (AbstractViewModel <T > mViewModel , boolean mWasCreated ) {
36+ private ViewModelWrapper (@ NonNull AbstractViewModel <T > mViewModel , boolean mWasCreated ) {
3737 this .viewModel = mViewModel ;
3838 this .wasCreated = mWasCreated ;
3939 }
4040 }
4141
42- public synchronized <T extends IView > ViewModelWrapper <T > getViewModel (String key , Class <? extends AbstractViewModel <T >> viewModelClass ) {
42+ @ SuppressWarnings ("unchecked" )
43+ @ NonNull
44+ public synchronized <T extends IView > ViewModelWrapper <T > getViewModel (@ NonNull String key , @ NonNull Class <? extends AbstractViewModel <T >> viewModelClass ) {
4345 AbstractViewModel <T > instance = (AbstractViewModel <T >) mViewModelCache .get (key );
4446 if (instance != null ) {
45- return new ViewModelWrapper <T >(instance , false );
47+ return new ViewModelWrapper <>(instance , false );
4648 }
4749
4850 try {
4951 instance = viewModelClass .newInstance ();
5052 mViewModelCache .put (key , instance );
51- return new ViewModelWrapper <T >(instance , true );
52- } catch (InstantiationException e ) {
53- throw new RuntimeException (e );
54- } catch (IllegalAccessException e ) {
53+ return new ViewModelWrapper <>(instance , true );
54+ } catch (InstantiationException | IllegalAccessException e ) {
5555 throw new RuntimeException (e );
5656 }
5757 }
0 commit comments