/** * */ package de.pointedears.converter.db; import java.util.HashMap; import java.util.Map.Entry; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import de.pointedears.converter.app.CurrenciesActivity; /** * @author pelinux * */ public class CurrenciesDatabase extends SQLiteOpenHelper { private static final String DATABASE_NAME = "currency.db"; //$NON-NLS-1$ private static final int DATABASE_VERSION = 1; public static final String TABLE = "currency"; //$NON-NLS-1$ public static final String COLUMN_CURRENCY1 = "currency1"; //$NON-NLS-1$ public static final String COLUMN_CURRENCY2 = "currency2"; //$NON-NLS-1$ public static final String COLUMN_FACTOR = "factor"; //$NON-NLS-1$ private final CurrenciesActivity context; /** * @param context * The Activity in which this wrapper is used */ public CurrenciesDatabase(CurrenciesActivity context) { super(context, CurrenciesDatabase.DATABASE_NAME, null, CurrenciesDatabase.DATABASE_VERSION); this.context = context; } /* * (non-Javadoc) * * @see * android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite * .SQLiteDatabase) */ @SuppressWarnings("nls") @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS " + CurrenciesDatabase.TABLE + "(" + CurrenciesDatabase.COLUMN_CURRENCY1 + " TEXT, " + CurrenciesDatabase.COLUMN_CURRENCY2 + " TEXT, " + CurrenciesDatabase.COLUMN_FACTOR + " NUMERIC)"); HashMap> currencyConversions = this.context.getCurrencyConversions(); for (String key : currencyConversions.keySet()) { for (Entry factorEntry : currencyConversions.get(key) .entrySet()) { ContentValues values = new ContentValues(); values.put(CurrenciesDatabase.COLUMN_CURRENCY1, key); values.put(CurrenciesDatabase.COLUMN_CURRENCY2, factorEntry.getKey()); values.put(CurrenciesDatabase.COLUMN_FACTOR, factorEntry.getValue()); db.insert(CurrenciesDatabase.TABLE, CurrenciesDatabase.COLUMN_FACTOR, values); } } } /* * (non-Javadoc) * * @see * android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite * .SQLiteDatabase, int, int) */ @SuppressWarnings("nls") @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { /* NOTE: Should migrate database instead */ db.execSQL("DROP TABLE IF EXISTS " + CurrenciesDatabase.TABLE); this.onCreate(db); } }