Android Open Source - InMemoryDb In Memory Db Map






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;
// w  w w.  ja  va2  s  .  co  m
import android.content.ContentValues;

import java.util.Map;
import java.util.Set;

public abstract class InMemoryDbMap<K, V, H extends Map<K, V>, INSERT_ID> extends AsynchronousDbHelper<MapEntry<K,V>, INSERT_ID> {

  /**
   * @param db The already created {@link android.database.sqlite.SQLiteOpenHelper} to use as storage
   * @param name Database name for logs
   * @param logger The {@link org.gawst.asyncdb.Logger} to use for all logs (can be null for the default Android logs)
   * @param initCookie Cookie to pass to {@link AsynchronousDbHelper#preloadInit(Object)}
   */
  protected InMemoryDbMap(MapDataSource<K, V, INSERT_ID> db, String name, Logger logger, Object initCookie) {
    super(db, name, logger, initCookie);
  }

  /**
   * return the object used to the in-memory elements
   * @return
   */
  abstract protected H getMap();

  protected void onDataCleared() {}

  @Override
  public final void addItemInMemory(MapEntry<K, V> entry) {
    putEntry(entry.getKey(), entry.getValue());
  }

  protected abstract ContentValues getValuesFromData(K key, V value) throws RuntimeException;

  @Override
  protected final ContentValues getValuesFromData(MapEntry<K, V> data) throws RuntimeException {
    return getValuesFromData(data.getKey(), data.getValue());
  }

  protected void putEntry(K key, V value) {
    final H map = getMap();
    map.put(key, value);
  }

  @Override
  protected void clearDataInMemory() {
    getMap().clear();
    super.clearDataInMemory();
    onDataCleared();
  }

  public V remove(K key) {
    V result = getMap().remove(key);
    //if (result!=null)
      scheduleRemoveOperation(new MapEntry<K,V>(key,result));
    return result;
  }

  public V put(K key, V value) {
    V result = getMap().put(key, value);
    if (result==null)
      scheduleAddOperation(new MapEntry<K,V>(key, value));
    else
      scheduleUpdateOperation(new MapEntry<K,V>(key, value));
    return result;
  }

  public V get(K key) {
    return getMap().get(key);
  }

  public boolean containsKey(K key) {
    return getMap().containsKey(key);
  }
  
  public K getStoredKey(K key) {
    if (DEBUG_DB) LogManager.logger.d("colors", "looking for "+key);
    Set<K> keys = getMap().keySet();
    for (K k : keys ){
      if (DEBUG_DB) LogManager.logger.d("colors", " testing key "+k);
      if (k.equals(key)) {
        if (DEBUG_DB) LogManager.logger.d("colors", " using "+k);
        return k;
      }
    }
    return null;
  }

  public void notifyItemChanged(K key) {
    V value = getMap().get(key);
    if (value!=null)
      scheduleUpdateOperation(new MapEntry<K,V>(key, value));
  }

  public int size() {
    return getMap().size();
  }
}




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