Android Open Source - InMemoryDb Typed Cursor Data Source






From Project

Back to project page InMemoryDb.

License

The source code is released under:

Apache License

If you think the Android project InMemoryDb 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 org.gawst.asyncdb.source.typed;
/*from w  w w. ja  v  a 2s.c om*/
import android.content.ContentValues;
import android.database.Cursor;
import android.support.annotation.NonNull;

import org.gawst.asyncdb.DataSource;
import org.gawst.asyncdb.InvalidDbEntry;
import org.gawst.asyncdb.InvalidEntry;

/**
 * Abstract helper {@link org.gawst.asyncdb.DataSource} class reading using a {@link android.database.Cursor}.
 *
 * @param <E>      Type of the elements read from the {@code CURSOR}
 * @param <CURSOR> Wrapper around the raw {@code Cursor} read
 * @author Created by robUx4 on 11/01/2015.
 * @see TypedContentProviderDataSource
 * @see TypedSqliteDataSource
 * @see TypedSqliteMapDataSource
 */
public abstract class TypedCursorDataSource<E, INSERT_ID, DATABASE_ID, CURSOR extends Cursor> implements DataSource<E, INSERT_ID>, TypedDatabaseSource<INSERT_ID, DATABASE_ID, CURSOR> {

  private final TypedDatabaseElementHandler<E, CURSOR> databaseElementHandler;

  /**
   * Constructor.
   *
   * @param databaseElementHandler Handler to transform {@link E} elements to queries and {@code Cursor} to {@link E} elements.
   */
  public TypedCursorDataSource(@NonNull TypedDatabaseElementHandler<E, CURSOR> databaseElementHandler) {
    if (databaseElementHandler == null)
      throw new NullPointerException("null CursorSourceHandler in " + this);
    this.databaseElementHandler = databaseElementHandler;
  }

  @Override
  public final boolean update(E itemToUpdate, ContentValues updateValues) {
    return update(updateValues, databaseElementHandler.getItemSelectClause(itemToUpdate), databaseElementHandler.getItemSelectArgs(itemToUpdate)) != 0;
  }

  @Override
  public final boolean delete(E itemToDelete) {
    return delete(databaseElementHandler.getItemSelectClause(itemToDelete), databaseElementHandler.getItemSelectArgs(itemToDelete)) != 0;
  }

  @Override
  public final void queryAll(BatchReadingCallback<E> readingCallback) {
    CURSOR c = wrapCursor(query(null, null, null, null, null, null, null));
    if (c != null)
      try {
        if (c.moveToFirst()) {
          readingCallback.startLoadingAllItems(c.getCount());
          do {
            try {
              E item = databaseElementHandler.cursorToItem(c);
              readingCallback.addItemInMemory(item);
            } catch (InvalidDbEntry e) {
              readingCallback.removeInvalidEntry(e.getInvalidEntry());
            }
          } while (c.moveToNext());
        }
      } finally {
        c.close();
      }
  }

  @Override
  public boolean deleteInvalidEntry(InvalidEntry invalidEntry) {
    return delete(databaseElementHandler.getItemSelectClause(null), invalidEntry.getSelectArgs()) != 0;
  }
}




Java Source Code List

org.gawst.asyncdb.AsyncDatabaseHandler.java
org.gawst.asyncdb.AsyncDbHelperHandler.java
org.gawst.asyncdb.AsyncQueryHandler.java
org.gawst.asyncdb.AsynchronousDatabase.java
org.gawst.asyncdb.AsynchronousDbErrorHandler.java
org.gawst.asyncdb.AsynchronousDbHelper.java
org.gawst.asyncdb.AsynchronousDbOperation.java
org.gawst.asyncdb.DataSource.java
org.gawst.asyncdb.InMemoryDbArrayList.java
org.gawst.asyncdb.InMemoryDbCopyOnWriteArrayList.java
org.gawst.asyncdb.InMemoryDbList.java
org.gawst.asyncdb.InMemoryDbListener.java
org.gawst.asyncdb.InMemoryDbMap.java
org.gawst.asyncdb.InMemoryDbSet.java
org.gawst.asyncdb.InMemoryDbTreeSet.java
org.gawst.asyncdb.InMemoryHashmapDb.java
org.gawst.asyncdb.InMemoryLruCache.java
org.gawst.asyncdb.InvalidDbEntry.java
org.gawst.asyncdb.InvalidEntry.java
org.gawst.asyncdb.LogManager.java
org.gawst.asyncdb.Logger.java
org.gawst.asyncdb.LruCache.java
org.gawst.asyncdb.MapDataSource.java
org.gawst.asyncdb.MapDatabaseElementHandler.java
org.gawst.asyncdb.MapEntry.java
org.gawst.asyncdb.adapter.InMemoryArrayListAdapter.java
org.gawst.asyncdb.adapter.InMemoryFilteredAdapter.java
org.gawst.asyncdb.adapter.InMemoryFilteredListAdapter.java
org.gawst.asyncdb.adapter.InMemoryFilteredTreeAdapter.java
org.gawst.asyncdb.adapter.InMemoryTreeSetAdapter.java
org.gawst.asyncdb.adapter.UIHandler.java
org.gawst.asyncdb.purge.DatabasePurgerMaxDate.java
org.gawst.asyncdb.purge.DatabaseSourcePurgerMax.java
org.gawst.asyncdb.purge.DatabaseSourcePurger.java
org.gawst.asyncdb.purge.PurgeHandler.java
org.gawst.asyncdb.source.ContentProviderDataSource.java
org.gawst.asyncdb.source.CursorDataSource.java
org.gawst.asyncdb.source.DatabaseElementHandler.java
org.gawst.asyncdb.source.DatabaseSource.java
org.gawst.asyncdb.source.SqliteDataSource.java
org.gawst.asyncdb.source.SqliteMapDataSource.java
org.gawst.asyncdb.source.typed.TypedContentProviderDataSource.java
org.gawst.asyncdb.source.typed.TypedCursorDataSource.java
org.gawst.asyncdb.source.typed.TypedDatabaseElementHandler.java
org.gawst.asyncdb.source.typed.TypedDatabaseSource.java
org.gawst.asyncdb.source.typed.TypedSqliteDataSource.java
org.gawst.asyncdb.source.typed.TypedSqliteMapDataSource.java