AbstractCachepublic abstract class AbstractCache extends Object
Fields Summary |
---|
private static final String | TAG | private static final boolean | DEBUG | private static final boolean | LOCAL_LOGV | private static final int | MAX_CACHED_ITEMS | private final HashMap | mCacheMap |
Constructors Summary |
---|
protected AbstractCache()
mCacheMap = new HashMap<K, CacheEntry<V>>();
|
Methods Summary |
---|
public V | get(K key)
if (LOCAL_LOGV) {
Log.v(TAG, "Trying to get " + key + " from cache.");
}
if (key != null) {
CacheEntry<V> cacheEntry = mCacheMap.get(key);
if (cacheEntry != null) {
cacheEntry.hit++;
if (LOCAL_LOGV) {
Log.v(TAG, key + " hit " + cacheEntry.hit + " times.");
}
return cacheEntry.value;
}
}
return null;
| public V | purge(K key)
if (LOCAL_LOGV) {
Log.v(TAG, "Trying to purge " + key);
}
CacheEntry<V> v = mCacheMap.remove(key);
if (LOCAL_LOGV) {
Log.v(TAG, mCacheMap.size() + " items cached.");
}
return v != null ? v.value : null;
| public void | purgeAll()
if (LOCAL_LOGV) {
Log.v(TAG, "Purging cache, " + mCacheMap.size()
+ " items dropped.");
}
mCacheMap.clear();
| public boolean | put(K key, V value)
if (LOCAL_LOGV) {
Log.v(TAG, "Trying to put " + key + " into cache.");
}
if (mCacheMap.size() >= MAX_CACHED_ITEMS) {
// TODO Should remove the oldest or least hit cached entry
// and then cache the new one.
if (LOCAL_LOGV) {
Log.v(TAG, "Failed! size limitation reached.");
}
return false;
}
if (key != null) {
CacheEntry<V> cacheEntry = new CacheEntry<V>();
cacheEntry.value = value;
mCacheMap.put(key, cacheEntry);
if (LOCAL_LOGV) {
Log.v(TAG, key + " cached, " + mCacheMap.size() + " items total.");
}
return true;
}
return false;
| public int | size()
return mCacheMap.size();
|
|