/* * Copyright 2013 Yoshihiro Miyama * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.kyakujin.android.autoeco.db.dao; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.net.Uri; import com.kyakujin.android.autoeco.db.AutoEcoDBOpenHelperV1; import com.kyakujin.android.autoeco.db.AutoEcoContract.MappingQuery; import com.kyakujin.android.autoeco.db.AutoEcoContract.MappingTbl; /** * Data Access Object for Mapping Table. */ public class MappingDAO { int mDbVersion; Context mContext; AutoEcoDBOpenHelperV1 mV1Helper; public MappingDAO(Context context) { super(); mContext = context; } public void insertMapping(SQLiteDatabase db, MappingModel data) { String query; query = "insert into mapping(ecoid, schedid, batteryid, manualid) values (" + "'" + data.getEcoid() + "','" + data.getSchedid() + "','" + data.getBatteryid() + "','" + data.getManualid() + "')"; db.execSQL(query); } public Uri insertMapping(MappingModel model) { ContentValues val = new ContentValues(); val.put(MappingTbl.ECO_ID, model.getEcoid()); val.put(MappingTbl.SCHED_ID, model.getSchedid()); val.put(MappingTbl.BATTERY_ID, model.getBatteryid()); val.put(MappingTbl.MANUAL_ID, model.getManualid()); return mContext.getContentResolver().insert(MappingTbl.CONTENT_URI, val); } private int searchMappingIdCommon(int id, String where) { Cursor c = null; int mappingId = 0; try { c = mContext.getContentResolver().query(MappingTbl.CONTENT_URI, MappingQuery.PROJECTION, where, null, null); if (c.moveToFirst()) { // Mappingテーブルに存在したのでMappingの該当idを取得 mappingId = c.getInt(MappingQuery.Idx._ID.ordinal()); } } catch (SQLiteException e) { e.printStackTrace(); } finally { if (c != null) { c.close(); } } return mappingId; } public int searchMappingIdBySchedId(int schedId) { String where = MappingTbl.SCHED_ID + " = " + schedId; return searchMappingIdCommon(schedId, where); } public int searchMappingIdByBatteryId(int batteryId) { String where = MappingTbl.BATTERY_ID + " = " + batteryId; return searchMappingIdCommon(batteryId, where); } public int searchMappingIdByManualId(int manualId) { String where = MappingTbl.MANUAL_ID + " = " + manualId; return searchMappingIdCommon(manualId, where); } private int searchEcoIdCommon(int id, String where) { Cursor c = null; int ecoId = 0; try { c = mContext.getContentResolver().query(MappingTbl.CONTENT_URI, MappingQuery.PROJECTION, where, null, null); if (c.moveToFirst()) { // Mappingテーブルに存在したのでMappingの該当idを取得 ecoId = c.getInt(MappingQuery.Idx.ECO_ID.ordinal()); } } catch (SQLiteException e) { e.printStackTrace(); } finally { if (c != null) { c.close(); } } return ecoId; } public int searchEcoIdBySchedId(int schedId) { String where = MappingTbl.SCHED_ID + " = " + schedId; return searchEcoIdCommon(schedId, where); } public int searchEcoIdByBatteryId(int batteryId) { String where = MappingTbl.BATTERY_ID + " = " + batteryId; return searchEcoIdCommon(batteryId, where); } public int searchEcoIdByManualId(int manualId) { String where = MappingTbl.MANUAL_ID + " = " + manualId; return searchEcoIdCommon(manualId, where); } }