Android Open Source - sqlite-provider Extended S Q Lite Open Helper From Project Back to project page sqlite-provider .
License The source code is released under:
Apache License
If you think the Android project sqlite-provider 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 package novoda.lib.sqliteprovider.sqlite;
/ / w w w . j a v a 2 s . c o m
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import novoda.lib.sqliteprovider.migration.Migrations;
import novoda.lib.sqliteprovider.util.DBUtils;
import novoda.lib.sqliteprovider.util.Log;
// TODO caching?
public class ExtendedSQLiteOpenHelper extends SQLiteOpenHelper implements IDatabaseMetaInfo {
private static final String MIGRATIONS_PATH = "migrations" ;
private final Context context;
/*
* We cache the constrains.
*/
private final Map<String, List<String>> constrains = new HashMap<String, List<String>>();
public ExtendedSQLiteOpenHelper(Context context) throws IOException {
this (context, null);
}
public ExtendedSQLiteOpenHelper(Context context, CursorFactory factory) throws IOException {
this (context, context.getPackageName() + ".db" , factory, Migrations.getVersion(context.getAssets(), MIGRATIONS_PATH));
}
public ExtendedSQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {
super (context, name, factory, version);
this.context = context;
}
@Override
public Map<String, SQLiteType> getColumns(String table) {
return DBUtils.getFields(getReadableDatabase(), table);
}
@Override
public List<String> getTables() {
return DBUtils.getTables(getReadableDatabase());
}
@Override
public List<String> getForeignTables(String table) {
return DBUtils.getForeignTables(getReadableDatabase(), table);
}
@Override
public int getVersion() {
return getReadableDatabase().getVersion();
}
@Override
public void setVersion(int version) {
getWritableDatabase().setVersion(version);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
Migrations.migrate(db, context.getAssets(), MIGRATIONS_PATH);
} catch (IOException e) {
Log.Migration.e(e);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
@Override
public Map<String, String> getProjectionMap(String parent, String... foreignTables) {
return DBUtils.getProjectionMap(getReadableDatabase(), parent, foreignTables);
}
@Override
public List<String> getUniqueConstrains(String table) {
if (!constrains.containsKey(table)) {
constrains.put(table, DBUtils.getUniqueConstrains(getReadableDatabase(), table));
}
return constrains.get(table);
}
public String getFirstConstrain(String table, ContentValues values) {
List<String> localConstrains = getUniqueConstrains(table);
if (localConstrains == null) {
return null;
}
for (String c : localConstrains) {
if (values.containsKey(c)) {
return c;
}
}
return null;
}
}
Java Source Code List com.novoda.sqliteprovider.demo.NovodaApplication.java com.novoda.sqliteprovider.demo.domain.Firework.java com.novoda.sqliteprovider.demo.domain.Groups.java com.novoda.sqliteprovider.demo.domain.Shop.java com.novoda.sqliteprovider.demo.domain.UseCaseFactory.java com.novoda.sqliteprovider.demo.domain.UseCaseInfo.java com.novoda.sqliteprovider.demo.loader.FireworkLoader.java com.novoda.sqliteprovider.demo.loader.FireworkSaver.java com.novoda.sqliteprovider.demo.persistance.DatabaseConstants.java com.novoda.sqliteprovider.demo.persistance.DatabaseReader.java com.novoda.sqliteprovider.demo.persistance.DatabaseWriter.java com.novoda.sqliteprovider.demo.persistance.FireworkReader.java com.novoda.sqliteprovider.demo.persistance.FireworkWriter.java com.novoda.sqliteprovider.demo.provider.FireworkProvider.java com.novoda.sqliteprovider.demo.provider.FireworkUriConstants.java com.novoda.sqliteprovider.demo.simple.provider.FireworkProvider.java com.novoda.sqliteprovider.demo.simple.ui.MainActivity.java com.novoda.sqliteprovider.demo.simple.ui.MainFragment.java com.novoda.sqliteprovider.demo.ui.AddFireworkActivity.java com.novoda.sqliteprovider.demo.ui.FindDistinctFireworksActivity.java com.novoda.sqliteprovider.demo.ui.FindFireworkWithPkActivity.java com.novoda.sqliteprovider.demo.ui.FindFireworksFromOneShopActivity.java com.novoda.sqliteprovider.demo.ui.FindThreeFireworksActivity.java com.novoda.sqliteprovider.demo.ui.FireworkActivity.java com.novoda.sqliteprovider.demo.ui.MainActivity.java com.novoda.sqliteprovider.demo.ui.ViewAllFireworksActivity.java com.novoda.sqliteprovider.demo.ui.ViewShopActivity.java com.novoda.sqliteprovider.demo.ui.WellStockedShopActivity.java com.novoda.sqliteprovider.demo.ui.adapter.FireworkAdapter.java com.novoda.sqliteprovider.demo.ui.base.NovodaActivity.java com.novoda.sqliteprovider.demo.ui.fragment.AddFireworkFragment.java com.novoda.sqliteprovider.demo.ui.fragment.FindFireworkWithPkFragment.java com.novoda.sqliteprovider.demo.ui.fragment.FindFireworksFromOneShopFragment.java com.novoda.sqliteprovider.demo.ui.fragment.ShopFragment.java com.novoda.sqliteprovider.demo.ui.fragment.UriSqlFragment.java com.novoda.sqliteprovider.demo.ui.input.DemoMenu.java com.novoda.sqliteprovider.demo.ui.input.OnPrimaryKeyInputError.java com.novoda.sqliteprovider.demo.ui.util.FromXML.java com.novoda.sqliteprovider.demo.ui.widget.UriSqlView.java com.novoda.sqliteprovider.demo.util.Log.java novoda.lib.sqliteprovider.ContentProviderTest.java novoda.lib.sqliteprovider.cursor.EmptyCursor.java novoda.lib.sqliteprovider.migration.Migrations.java novoda.lib.sqliteprovider.provider.ImplLogger.java novoda.lib.sqliteprovider.provider.LoggedContentProvider.java novoda.lib.sqliteprovider.provider.SQLiteContentProviderImpl.java novoda.lib.sqliteprovider.provider.SQLiteContentProvider.java novoda.lib.sqliteprovider.provider.action.InsertHelper.java novoda.lib.sqliteprovider.sqlite.AssetHelperTest.java novoda.lib.sqliteprovider.sqlite.ExtendedSQLiteOpenHelperTest.java novoda.lib.sqliteprovider.sqlite.ExtendedSQLiteOpenHelper.java novoda.lib.sqliteprovider.sqlite.ExtendedSQLiteQueryBuilder.java novoda.lib.sqliteprovider.sqlite.IDatabaseMetaInfo.java novoda.lib.sqliteprovider.sqlite.InsertHelperTest.java novoda.lib.sqliteprovider.sqlite.SQLiteUri.java novoda.lib.sqliteprovider.testproviders.TestProvider.java novoda.lib.sqliteprovider.util.DBUtilsTest.java novoda.lib.sqliteprovider.util.DBUtils.java novoda.lib.sqliteprovider.util.DatabaseUtils.java novoda.lib.sqliteprovider.util.Log.java novoda.lib.sqliteprovider.util.SQLFile.java novoda.lib.sqliteprovider.util.UriInspector.java novoda.lib.sqliteprovider.util.UriToSqlAttributes.java novoda.lib.sqliteprovider.util.UriUtils.java novoda.rest.database.ModularSQLiteOpenHelper.java novoda.rest.database.Persister.java novoda.rest.database.SQLiteConflictClause.java novoda.rest.database.SQLiteFileParser.java novoda.rest.database.SQLiteInserter.java novoda.rest.database.SQLiteTableCreatorWrapper.java novoda.rest.database.SQLiteTableCreator.java novoda.rest.database.SQLiteType.java novoda.rest.database.SQLiteUtil.java novoda.rest.database.UriQueryBuilder.java novoda.rest.database.UriTableCreator.java novoda.rest.database.listener.NodeInsertListener.java novoda.rest.database.listener.SQLiteInsertListener.java novoda.rest.database.listener.SQLiteTableCreateListener.java