Back to project page AndroidShoppingList.
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.
/** * 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; } }