Android Open Source - sqlite-provider Extended S Q Lite Query Builder 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;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.database.Cursor;
import android.database.sqlite.*;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.text.TextUtils;
import java.util.Map;
import java.util.Set;
public class ExtendedSQLiteQueryBuilder {
private final SQLiteQueryBuilder delegate;
public ExtendedSQLiteQueryBuilder() {
delegate = new SQLiteQueryBuilder();
}
public ExtendedSQLiteQueryBuilder(SQLiteQueryBuilder d) {
delegate = d;
}
/*
* select * from parent inner join child1, child2 on parent.id=child1.id and parent.id=child2.id
*/
public void addInnerJoin(String... children) {
final String parent = delegate.getTables();
if (parent == null || TextUtils.isEmpty(parent)) {
throw new IllegalStateException("You need to call setTable prior to call addInnerJoin" );
}
final StringBuilder table = new StringBuilder(parent);
for (String c : children) {
table.append(String.format(" LEFT JOIN %1$s ON %2$s.%3$s_id=%1$s._id" , c, parent,
singularize(c)));
}
delegate.setTables(table.toString());
}
private String singularize(String c) {
return (c.endsWith("s" )) ? c.substring(0, c.length() - 1) : c;
}
public String getTables() {
return delegate.getTables();
}
public void appendWhere(CharSequence inWhere) {
delegate.appendWhere(inWhere);
}
public void appendWhereEscapeString(String inWhere) {
delegate.appendWhereEscapeString(inWhere);
}
public Cursor query(SQLiteDatabase db, String[] projectionIn, String selection,
String[] selectionArgs, String groupBy, String having, String sortOrder) {
return delegate.query(db, projectionIn, selection, selectionArgs, groupBy, having,
sortOrder);
}
public Cursor query(SQLiteDatabase db, String[] projectionIn, String selection,
String[] selectionArgs, String groupBy, String having, String sortOrder, String limit) {
return delegate.query(db, projectionIn, selection, selectionArgs, groupBy, having,
sortOrder, limit);
}
public String buildQuery(String[] projectionIn, String selection, String[] selectionArgs,
String groupBy, String having, String sortOrder, String limit) {
return delegate.buildQuery(projectionIn, selection, selectionArgs, groupBy, having,
sortOrder, limit);
}
public String buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns,
Set<String> columnsPresentInTable, int computedColumnsOffset,
String typeDiscriminatorValue, String selection, String[] selectionArgs,
String groupBy, String having) {
return delegate.buildUnionSubQuery(typeDiscriminatorColumn, unionColumns,
columnsPresentInTable, computedColumnsOffset, typeDiscriminatorValue, selection,
selectionArgs, groupBy, having);
}
public String buildUnionQuery(String[] subQueries, String sortOrder, String limit) {
return delegate.buildUnionQuery(subQueries, sortOrder, limit);
}
public void setDistinct(boolean distinct) {
delegate.setDistinct(distinct);
}
public void setTables(String inTables) {
delegate.setTables(inTables);
}
public void setProjectionMap(Map<String, String> columnMap) {
delegate.setProjectionMap(columnMap);
}
public void setCursorFactory(CursorFactory factory) {
delegate.setCursorFactory(factory);
}
@Override
public String toString() {
return delegate.toString();
}
}
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