12fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua/*
22fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * Copyright (C) 2012 The Android Open Source Project
32fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua *
42fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * Licensed under the Apache License, Version 2.0 (the "License");
52fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * you may not use this file except in compliance with the License.
62fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * You may obtain a copy of the License at
72fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua *
82fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua *      http://www.apache.org/licenses/LICENSE-2.0
92fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua *
102fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * Unless required by applicable law or agreed to in writing, software
112fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * distributed under the License is distributed on an "AS IS" BASIS,
122fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * See the License for the specific language governing permissions and
142fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua * limitations under the License.
152fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua */
162fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
172fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huapackage android.bordeaux.services;
182fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
192fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaimport android.content.Context;
202fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaimport android.database.SQLException;
212fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaimport android.database.sqlite.SQLiteDatabase;
222fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaimport android.database.sqlite.SQLiteOpenHelper;
232fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaimport android.util.Log;
242fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
252fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua// Base Helper class for aggregator storage database
262fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Huaclass AggregatorStorage {
272fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    private static final String TAG = "AggregatorStorage";
282fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    private static final String DATABASE_NAME = "aggregator";
292fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    private static final int DATABASE_VERSION = 1;
302fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
312fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    protected DBHelper mDbHelper;
322fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    protected SQLiteDatabase mDatabase;
332fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
342fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    class DBHelper extends SQLiteOpenHelper {
352fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        private String mTableCmd;
362fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        private String mTableName;
372fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        DBHelper(Context context, String tableName, String tableCmd) {
382fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            super(context, DATABASE_NAME, null, DATABASE_VERSION);
392fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            mTableName = tableName;
402fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            mTableCmd = tableCmd;
412fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        }
422fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
432fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        @Override
442fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        public void onCreate(SQLiteDatabase db) {
452fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            db.execSQL(mTableCmd);
462fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        }
472fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
482fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        @Override
492fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
502fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
512fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua                  + newVersion + ", which will destroy all old data");
522fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua
532fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            db.execSQL("DROP TABLE IF EXISTS " + mTableName);
542fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua            onCreate(db);
552fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua        }
562fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua    }
572fc454f62ff5e11eb16a93a3d515a4e4fba89b5eWei Hua}
58