Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.gawst.asyncdb;
  
  import  android.content.ContentValues;
  import  android.support.annotation.Nullable;
  
  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> {

Parameters:
db The already created android.database.sqlite.SQLiteOpenHelper to use as storage
name Database name for logs
logger The org.gawst.asyncdb.Logger to use for all logs (can be null for the default Android logs)
initCookie Cookie to pass to AsynchronousDbHelper.preloadInit(Object)
 
 	protected InMemoryDbMap(MapDataSource<K, V, INSERT_ID> dbString nameLogger loggerObject initCookie) {
 		super(dbnameloggerinitCookie);
 	}

return the object used to the in-memory elements

Returns:
 
 	abstract protected H getMap();
 
 	protected void onDataCleared() {}
 
 	public final void addItemInMemory(MapEntry<K, V> entry) {
 		putEntry(entry.getKey(), entry.getValue());
 	}

Transform the element in memory into android.content.ContentValues that can be saved in the database.

you can return null and fill the database yourself if you need to.

Parameters:
key Map key value of the element to insert/update.
value Map value of the element to insert/update.
update true if the values are for an update, not an insert, you can omit keys there.
Returns:
a ContentValues element with all data that can be used to restore the data later from the database.
Throws:
RuntimeException
 
 	@Nullable
 	protected abstract ContentValues getValuesFromData(K key, V valueboolean updatethrows RuntimeException;
 
 	protected final ContentValues getValuesFromData(MapEntry<K, V> databoolean updatethrows RuntimeException {
 		return getValuesFromData(data.getKey(), data.getValue(), update);
 	}
 
 	protected void putEntry(K key, V value) {
 		final H map = getMap();
 		map.put(keyvalue);
 	}
 
 	protected void clearDataInMemory() {
 		getMap().clear();
 	}
 
 	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(keyvalue);
 		if (result==null)
 			scheduleAddOperation(new MapEntry<K,V>(keyvalue));
 		else
 			scheduleUpdateOperation(new MapEntry<K,V>(keyvalue));
 		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 (..d("colors""looking for "+key);
 		Set<K> keys = getMap().keySet();
 		for (K k : keys ){
 			if (..d("colors"" testing key "+k);
 			if (k.equals(key)) {
 				if (..d("colors"" using "+k);
 				return k;
 			}
 		}
 		return null;
 	}
 
	public void notifyItemChanged(K key) {
value = getMap().get(key);
		if (value!=null)
			scheduleUpdateOperation(new MapEntry<K,V>(keyvalue));
	}
	public int size() {
		return getMap().size();
	}
New to GrepCode? Check out our FAQ X