package io.c0nnector.github.paradise.cache;
import java.util.List;
import au.com.gridstone.grex.GRexAndroidPersister;
import io.c0nnector.github.paradise.api.model.misc.StartupFilter;
import io.c0nnector.github.paradise.api.model.results.Startup;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* Cache helper for startup objects
* @see io.c0nnector.github.paradise.api.model.results.Startup
*/
public class StartupCache extends BaseCache {
StartupFilter filter;
public StartupCache(GRexAndroidPersister persister, StartupFilter filter) {
super(persister);
this.filter = filter;
}
@Override
public String getKey() {
return "startup_" + filter.toString();
}
/**
* Observable that tries to retrieve a cached object
* @return
*/
public Observable<List<Startup>> get(){
return persister.getList(getKey(), Startup.class)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* Observable that caches an object
* @param startups
* @return
*/
public Observable<List<Startup>> put(List<Startup> startups){
return persister.putList(getKey(), startups, Startup.class);
}
}