package com.xtremelabs.robolectric.shadows; import java.util.HashMap; import java.util.Map; import android.content.ContentProviderOperation; import android.content.ContentProviderOperation.Builder; import android.net.Uri; import com.xtremelabs.robolectric.Robolectric; import com.xtremelabs.robolectric.internal.Implementation; import com.xtremelabs.robolectric.internal.Implements; @Implements(ContentProviderOperation.class) public class ShadowContentProviderOperation { private final Map values = new HashMap(); private final Map selections = new HashMap(); private final Map withValueBackReferences = new HashMap(); private Uri uri; private boolean isInsert; private boolean isUpdate; private boolean isDelete; @Implementation public static Builder newInsert(Uri uri) { Builder builder = Robolectric.newInstanceOf(Builder.class); ShadowContentProviderOperationBuilder shadowBuilder = Robolectric.shadowOf(builder); shadowBuilder.setUri(uri); shadowBuilder.setInsert(true); return builder; } @Implementation public static Builder newUpdate(Uri uri) { Builder builder = Robolectric.newInstanceOf(Builder.class); ShadowContentProviderOperationBuilder shadowBuilder = Robolectric.shadowOf(builder); shadowBuilder.setUri(uri); shadowBuilder.setUpdate(true); return builder; } @Implementation public static Builder newDelete(Uri uri) { Builder builder = Robolectric.newInstanceOf(Builder.class); ShadowContentProviderOperationBuilder shadowBuilder = Robolectric.shadowOf(builder); shadowBuilder.setUri(uri); shadowBuilder.setDelete(true); return builder; } @Implementation public Uri getUri() { return uri; } public void setUri(Uri uri) { this.uri = uri; } public Map getValues() { return values; } public Map getSelections() { return selections; } public boolean isInsert() { return isInsert; } public void setInsert(boolean value) { isInsert = value; } public boolean isUpdate() { return isUpdate; } public void setUpdate(boolean value) { isUpdate = value; } public boolean isDelete() { return isDelete; } public void setDelete(boolean value) { isDelete = value; } public void setWithValueBackReference(String key, int previousResult) { withValueBackReferences.put(key, previousResult); } public int getWithValueBackReference(String key) { return withValueBackReferences.get(key); } }