Back to project page anluwage.
The source code is released under:
GNU General Public License
If you think the Android project anluwage listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.sudocode.content.provider.api.dao; /* w w w .j av a 2s .c o m*/ import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; import com.sudocode.content.provider.api.dao.exception.AnnotationBasedDaoException; import com.sudocode.content.provider.api.dao.exception.UnableToSaveRecordException; /** * Created by RM on 1/31/14. */ public class GenericAnnotationBasedDao extends AnnotationBasedDaoSupport implements AnnotationBasedDao { private ContentResolver contentResolver; public GenericAnnotationBasedDao(Context context) { this(context.getContentResolver()); } public GenericAnnotationBasedDao(ContentResolver contentResolver) { this.contentResolver = contentResolver; } @Override public <T> T get(Class<T> tableModelClass, long id) { return mapToObject(ContentUris.withAppendedId(getContentUri(tableModelClass), id), tableModelClass, false); } @Override public <T> Cursor list(Class<T> tableModelClass) { return list(tableModelClass, null, null, null, null); } @Override public <T> Cursor list(Class<T> tableModelClass, String[] projection, String selection, String[] selectionArgs, String sortOder) { return contentResolver.query(getContentUri(tableModelClass), projection, selection, selectionArgs, sortOder); } @Override public <T> void save(T model) throws AnnotationBasedDaoException { Uri newItemUri = contentResolver.insert(getContentUri(model.getClass()), generateContentValues(model)); if (newItemUri == null) { throw new UnableToSaveRecordException(); } } @Override public <T> void save(T[] model) { if (model != null && model.length > 0) { ContentValues[] contentValuesesArray = new ContentValues[model.length]; for (int i = 0; i < contentValuesesArray.length; i++) { contentValuesesArray[i] = generateContentValues(model[i]); } contentResolver.bulkInsert(getContentUri(model.getClass()), contentValuesesArray); } } @Override public <T> void update(T model) { contentResolver.update(getContentUri(model.getClass()), generateContentValues(model), null, null); } @Override public <T> void update(T model, String selection, String[] selectionArgs) { contentResolver.update(getContentUri(model.getClass()), generateContentValues(model), selection, selectionArgs); } @Override public <T> void delete(T model) { delete(model.getClass(), getId(model)); } @Override public <T> void delete(Class<T> tableModelClass, long id) { contentResolver.delete(ContentUris.withAppendedId(getContentUri(tableModelClass), id), null, null); } @Override protected ContentResolver getContentResolver() { return contentResolver; } }