package com.rapidftr.repository; import com.rapidftr.model.BaseModel; import com.rapidftr.model.Child; import org.json.JSONException; import java.io.Closeable; import java.sql.SQLException; import java.util.HashMap; import java.util.List; public interface Repository<T extends BaseModel> extends Closeable { public List<T> toBeSynced() throws JSONException; public boolean exists(String id); public T get(String id) throws JSONException; public int size(); public void createOrUpdate(T t) throws JSONException, SQLException; public HashMap<String, String> getAllIdsAndRevs() throws JSONException; public void createOrUpdateWithoutHistory(T t) throws JSONException; public List<T> currentUsersUnsyncedRecords() throws JSONException; public List<String> getRecordIdsByOwner() throws JSONException; public List<T> allCreatedByCurrentUser() throws JSONException; public List<T> getRecordsBetween(int previousPageNumber, int pageNumber) throws JSONException; public List<T> getRecordsForFirstPage() throws JSONException; }