package droidkit.sqlite; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.ArrayList; /** * @author Daniel Serdyukov */ public interface SQLiteTable<T> { @NonNull String getName(); void create(@NonNull SQLiteDatabase db); void upgrade(@NonNull SQLiteDatabase db, int oldVersion, int newVersion); @Nullable T getRow(long rowId); @NonNull T instantiate(@NonNull Cursor cursor); void insert(@NonNull ContentResolver db, @NonNull Uri uri, @NonNull T object); void insert(@NonNull ArrayList<ContentProviderOperation> operations, @NonNull Uri uri, @NonNull T object); void update(@NonNull ContentResolver db, @NonNull Uri uri, @NonNull T object); void update(@NonNull ArrayList<ContentProviderOperation> operations, @NonNull Uri uri, @NonNull T object); void delete(@NonNull ContentResolver db, @NonNull Uri uri, @NonNull T object); void delete(@NonNull ArrayList<ContentProviderOperation> operations, @NonNull Uri uri, @NonNull T object); }