Android Open Source - AndroidShoppingList Database Helper






From Project

Back to project page AndroidShoppingList.

License

The source code is released under:

Apache License

If you think the Android project AndroidShoppingList listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright 2012 C. A. Fitzgerald/* ww  w .  ja  v  a 2 s .  com*/
 *
 *  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.github.riotopsys.shoppinglist.model;

import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.GenericRawResults;
import com.j256.ormlite.dao.RawRowMapper;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

  private static final String TAG = DatabaseHelper.class.getSimpleName();

  private static final String DATABASE_NAME = "sqlite.db";
  private static final int DATABASE_VERSION = 1;

  // the DAO object we use to access the tables
  private Dao<ShoppingList, UUID> mShoppingListDao = null;
  private Dao<ShoppingListItem, UUID> mShoppingListItemDao = null;

  public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }

  /** This is called when the database is first created. Usually you should
   * call createTable statements here to create the tables that will store
   * your data. */
  @Override
  public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
    try {
      Log.i(DatabaseHelper.class.getName(), "onCreate");
      TableUtils.createTable(connectionSource, ShoppingList.class);
      TableUtils.createTable(connectionSource, ShoppingListItem.class);

    } catch (SQLException e) {
      Log.e(TAG, "Can't create database", e);
      throw new RuntimeException(e);
    }
  }

  /** This is called when your application is upgraded and it has a higher
   * version number. This allows you to adjust the various data to match the
   * new version number. */
  @Override
  public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
    try {
      Log.i(DatabaseHelper.class.getName(), "onUpgrade");
      TableUtils.dropTable(connectionSource, ShoppingList.class, true);
      TableUtils.dropTable(connectionSource, ShoppingListItem.class, true);
      // after we drop the old databases, we create the new ones
      onCreate(db, connectionSource);
    } catch (SQLException e) {
      Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e);
      throw new RuntimeException(e);
    }
  }

  public Dao<ShoppingList, UUID> getShoppingListDao() throws SQLException {
    if (mShoppingListDao == null) {
      mShoppingListDao = getDao(ShoppingList.class);
    }
    return mShoppingListDao;
  }

  public ShoppingList getShoppingList(UUID uuid) throws SQLException {
    return getShoppingListDao().queryForId(uuid);
  }

  public Dao<ShoppingListItem, UUID> getShoppingListItemDao() throws SQLException {
    if (mShoppingListItemDao == null) {
      mShoppingListItemDao = getDao(ShoppingListItem.class);
    }
    return mShoppingListItemDao;
  }

  public ShoppingListItem getShoppingListItem(UUID uuid) throws SQLException {
    return getShoppingListItemDao().queryForId(uuid);
  }

  public void createOrUpdate(PersistedRecord record) throws SQLException {
    if (record instanceof ShoppingList) {
      getShoppingListDao().createOrUpdate((ShoppingList) record);
    } else {
      getShoppingListItemDao().createOrUpdate((ShoppingListItem) record);
    }
  }

  public void delete(PersistedRecord record) throws SQLException {
    if (record instanceof ShoppingList) {
      getShoppingListDao().delete((ShoppingList) record);
    } else {
      getShoppingListItemDao().delete((ShoppingListItem) record);
    }
  }

  public List<DigestRecord> getDigest() {
    List<DigestRecord> finalList = new LinkedList<DigestRecord>();
    Dao<ShoppingList, UUID> dao;
    try {
      dao = getShoppingListDao();
      GenericRawResults<DigestRecord> results = dao.queryRaw(
          "select guid, timestamp from ShoppingLists union select guid, timestamp from ShoppingListItems;", new RawRowMapper<DigestRecord>() {
            @Override
            public DigestRecord mapRow(String[] columnNames, String[] resultColumns) {
              return new DigestRecord(UUID.fromString(resultColumns[0]), (resultColumns[1] != null) ? Long.parseLong(resultColumns[1]) : 0);
            }
          });
      finalList.addAll(results.getResults());

    } catch (SQLException e) {
      Log.e(TAG, "", e);
    }
    return finalList;
  }

  /** Close the database connections and clear any cached DAOs. */
  @Override
  public void close() {
    super.close();
    mShoppingListDao = null;
    mShoppingListItemDao = null;
  }
}




Java Source Code List

com.github.riotopsys.shoppinglist.AppKeys.java
com.github.riotopsys.shoppinglist.GCMIntentService.java
com.github.riotopsys.shoppinglist.IConfigurations.java
com.github.riotopsys.shoppinglist.activity.ListItemEdit.java
com.github.riotopsys.shoppinglist.activity.ShoppingListPreview.java
com.github.riotopsys.shoppinglist.adapter.ShoppingListAdapter.java
com.github.riotopsys.shoppinglist.adapter.ShoppingListCollectionAdapter.java
com.github.riotopsys.shoppinglist.comparator.ListItemNameComparator.java
com.github.riotopsys.shoppinglist.comparator.ListNameComparator.java
com.github.riotopsys.shoppinglist.fragment.ShoppingListFragment.java
com.github.riotopsys.shoppinglist.listener.CheckedChangeListener.java
com.github.riotopsys.shoppinglist.model.DatabaseHelper.java
com.github.riotopsys.shoppinglist.model.DigestRecord.java
com.github.riotopsys.shoppinglist.model.PersistedRecord.java
com.github.riotopsys.shoppinglist.model.ShoppingListCollection.java
com.github.riotopsys.shoppinglist.model.ShoppingListItem.java
com.github.riotopsys.shoppinglist.model.ShoppingList.java
com.github.riotopsys.shoppinglist.model.Work.java
com.github.riotopsys.shoppinglist.server.DigestCollection.java
com.github.riotopsys.shoppinglist.server.RestHelper.java
com.github.riotopsys.shoppinglist.server.RestResult.java
com.github.riotopsys.shoppinglist.server.ServerInterfaceService.java
com.github.riotopsys.shoppinglist.server.ServerTask.java
com.github.riotopsys.shoppinglist.server.UrlBuilder.java
com.github.riotopsys.shoppinglist.server.work.Operations.java
com.github.riotopsys.shoppinglist.server.work.WorkQueue.java
com.github.riotopsys.shoppinglist.utils.AccountUtils.java