1929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee/* 2929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Copyright (C) 2011 The Android Open Source Project 3929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 4929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 5929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Licensed under the Apache License, Version 2.0 (the "License"); 6929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * you may not use this file except in compliance with the License. 7929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * You may obtain a copy of the License at 8929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 9929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * http://www.apache.org/licenses/LICENSE-2.0 10929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 11929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Unless required by applicable law or agreed to in writing, software 12929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * distributed under the License is distributed on an "AS IS" BASIS, 13929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * See the License for the specific language governing permissions and 15929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * limitations under the License 16929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 17929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 18929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeepackage com.android.providers.contacts; 19929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 20929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.content.ContentValues; 21929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.database.DatabaseUtils; 22929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.database.sqlite.SQLiteDatabase; 23929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 24929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee/** 25929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * An interface which wraps key database modify operations (insert, update, delete) to perform 26929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * additional tasks before or after the database modification operation. A typical use case is to 27929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * generate notification when a database is modified. 28929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 29929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeepublic interface DatabaseModifier { 30929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee /** 31929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Use this method to insert a value which you would otherwise do using the 32929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * {@link SQLiteDatabase#insert(String, String, ContentValues)} method. 33929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 34929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public abstract long insert(String table, String nullColumnHack, ContentValues values); 35929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee /** 36929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Use this method to insert a value which you would otherwise do using the 37929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * {@link DatabaseUtils.InsertHelper#insert(ContentValues)} method. 38929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 39929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public abstract long insert(ContentValues values); 40929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee /** 41929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Use this method to update a table which you would otherwise do using the 42929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * {@link SQLiteDatabase#update(String, ContentValues, String, String[])} method. 43929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 44929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public abstract int update(String table, ContentValues values, 45929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee String whereClause, String[] whereArgs); 46929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee /** 47929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Use this method to delete entries from a table which you would otherwise do using the 48929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * {@link SQLiteDatabase#delete(String, String, String[])} method. 49929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 50929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public abstract int delete(String table, String whereClause, String[] whereArgs); 51929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee} 52