Subversion Repositories ES

Rev

Rev 12 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

1
/**
 *
 */

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<String, HashMap<String, Double>> currencyConversions =
      this.context.getCurrencyConversions();
    for (String key : currencyConversions.keySet())
    {
      for (Entry<String, Double> 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);
  }
}