package com.ckt.shrimp.utils;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
import com.ckt.shrimp.controller.BookController;
import com.ckt.shrimp.database.BookInfoDataBaseHelper;
/**
* Created by ckt on 09/03/15.
*
* 2015.06.09
* At present, I don't think the ContentProvider is needed in this app.
* So this class is not used from now on.
*/
public class MyDbProvider extends ContentProvider {
private final static int BOOK = 1;
private final static int STAFF = 2;
private BookInfoDataBaseHelper bookHelper;
@Override
public boolean onCreate() {
bookHelper = new BookInfoDataBaseHelper(this.getContext(),"saosao",null,1);
//BookController.bookHelper = bookHelper;
return false;
}
private static UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
matcher.addURI(BookUtil.bookAuthority,"books",BOOK);
matcher.addURI(BookUtil.bookAuthority,"staffs",STAFF);
}
@Override
public Cursor query(Uri uri, String[] columns, String s, String[] args, String s2) {
Cursor cursor = null;
switch (matcher.match(uri)){
case BOOK:
cursor = bookHelper.getReadableDatabase().query("book",columns,s,args,null,null,null,null);
break;
case STAFF :
cursor = bookHelper.getReadableDatabase().query("staff",columns,s,args,null,null,null,null);
break;
default: return null;
}
return cursor;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues contentValues) {
Uri mUri = null;
long id = 0;
switch (matcher.match(uri)){
case BOOK:
id = bookHelper.getWritableDatabase().insert("book","_id",contentValues);
break;
case STAFF :
id = bookHelper.getWritableDatabase().insert("staff","_id",contentValues);
break;
default: return null;
}
if(id != 0){
return ContentUris.withAppendedId(uri,id);
}else {
return null;
}
}
@Override
public int delete(Uri uri, String s, String[] strings) {
int id = 0;
switch (matcher.match(uri)){
case BOOK:
id = bookHelper.getWritableDatabase().delete("book",s,strings);
break;
case STAFF :
id = bookHelper.getWritableDatabase().delete("staff",s,strings);
break;
default: return -1;
}
return id;
}
@Override
public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {
int id;
switch (matcher.match(uri)){
case BOOK:
id = bookHelper.getWritableDatabase().update("book",contentValues,s,strings);
break;
case STAFF :
id = bookHelper.getWritableDatabase().update("staff",contentValues,s,strings);
break;
default: return -1;
}
return id;
}
}