package apps.makarov.com.whereismycurrency.repository; import java.util.Date; import java.util.List; import apps.makarov.com.whereismycurrency.repository.protocols.BankProtocol; import apps.makarov.com.whereismycurrency.repository.protocols.CurrencyPairProtocol; import apps.makarov.com.whereismycurrency.repository.protocols.RateProtocol; import apps.makarov.com.whereismycurrency.repository.protocols.ResultOperationProtocol; import apps.makarov.com.whereismycurrency.repository.protocols.UserHistoryProtocol; import io.realm.RealmObject; /** * Created by makarov on 27/06/15. */ public interface IRepository <T, R extends ResultOperationProtocol, M extends CurrencyPairProtocol> { List<? extends BankProtocol> getBanks(); List<? extends RateProtocol> getRates(M currencyPair, Date date, String bankName); List<? extends UserHistoryProtocol> getUserHistory(); List<? extends ResultOperationProtocol> getAllResultOperation(); <E extends T> void saveObject(E object); <E extends RealmObject> void removeObject(E obj); void addUrlToCache(String url); boolean hasUrlInCache(String url); R getResultOperation(String key); R resultToHistory(R resultOperation); R removeResult(R resultOperation); }