summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/ContentProvider.java
diff options
context:
space:
mode:
authorFred Quintana <fredq@google.com>2009-05-15 15:10:40 -0700
committerFred Quintana <fredq@google.com>2009-05-22 14:17:48 -0700
commit8943737692169f564cd34a9c8d471f3a5d438712 (patch)
tree7b017cbed472235c15d32e694b1fa18c5446c751 /core/java/android/content/ContentProvider.java
parentfc5095f44ba46b57f4ef6179ee4d69ce3a7fe69a (diff)
downloadframeworks_base-8943737692169f564cd34a9c8d471f3a5d438712.zip
frameworks_base-8943737692169f564cd34a9c8d471f3a5d438712.tar.gz
frameworks_base-8943737692169f564cd34a9c8d471f3a5d438712.tar.bz2
add ipc support to batching
Diffstat (limited to 'core/java/android/content/ContentProvider.java')
-rw-r--r--core/java/android/content/ContentProvider.java38
1 files changed, 18 insertions, 20 deletions
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index c204dda..bb25b68 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -151,9 +151,23 @@ public abstract class ContentProvider implements ComponentCallbacks {
return ContentProvider.this.bulkInsert(uri, initialValues);
}
- public Uri[] bulkInsertEntities(Uri uri, Entity[] entities) {
+ public Uri insertEntity(Uri uri, Entity entities) {
checkWritePermission(uri);
- return ContentProvider.this.bulkInsertEntities(uri, entities);
+ return ContentProvider.this.insertEntity(uri, entities);
+ }
+
+ public ContentProviderResult[] applyBatch(ContentProviderOperation[] operations)
+ throws OperationApplicationException {
+ for (ContentProviderOperation operation : operations) {
+ if (operation.isReadOperation()) {
+ checkReadPermission(operation.getUri());
+ }
+
+ if (operation.isWriteOperation()) {
+ checkWritePermission(operation.getUri());
+ }
+ }
+ return ContentProvider.this.applyBatch(operations);
}
public int delete(Uri uri, String selection, String[] selectionArgs) {
@@ -167,9 +181,9 @@ public abstract class ContentProvider implements ComponentCallbacks {
return ContentProvider.this.update(uri, values, selection, selectionArgs);
}
- public int[] bulkUpdateEntities(Uri uri, Entity[] entities) {
+ public int updateEntity(Uri uri, Entity entity) {
checkWritePermission(uri);
- return ContentProvider.this.bulkUpdateEntities(uri, entities);
+ return ContentProvider.this.updateEntity(uri, entity);
}
public ParcelFileDescriptor openFile(Uri uri, String mode)
@@ -403,14 +417,6 @@ public abstract class ContentProvider implements ComponentCallbacks {
throw new UnsupportedOperationException();
}
- public Uri[] bulkInsertEntities(Uri uri, Entity[] entities) {
- Uri[] result = new Uri[entities.length];
- for (int i = 0; i < entities.length; i++) {
- result[i] = insertEntity(uri, entities[i]);
- }
- return result;
- }
-
/**
* A request to delete one or more rows. The selection clause is applied when performing
* the deletion, allowing the operation to affect multiple rows in a
@@ -459,14 +465,6 @@ public abstract class ContentProvider implements ComponentCallbacks {
throw new UnsupportedOperationException();
}
- public int[] bulkUpdateEntities(Uri uri, Entity[] entities) {
- int[] result = new int[entities.length];
- for (int i = 0; i < entities.length; i++) {
- result[i] = updateEntity(uri, entities[i]);
- }
- return result;
- }
-
/**
* Open a file blob associated with a content URI.
* This method can be called from multiple