protected abstract fun saveCache(cache: CACHE, requirements: GET_CACHE_REQUIREMENTS): Unit
Save new cache data to whatever storage method Repository chooses.
It is up to you to call saveCache when you have new cache data to save. A good place to do this is in a ViewModel.
This will be called from background thread