Package org.greenrobot.essentials
Class ObjectCache<KEY,VALUE>
java.lang.Object
org.greenrobot.essentials.ObjectCache<KEY,VALUE>
An in-memory object cache supporting soft/weak/strong references, maximum size (clearing the entries that were put
first), and time-based expiration.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classstatic enum -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate intprivate intprivate intprivate intprivate intprivate intprivate final longprivate final booleanprivate final booleanprivate final intprivate longprivate final ObjectCache.ReferenceTypeprivate final Map<KEY, ObjectCache.CacheEntry<VALUE>> -
Constructor Summary
ConstructorsConstructorDescriptionObjectCache(ObjectCache.ReferenceType referenceType, int maxSize, long expirationMillis) Create a cache according to the given configuration. -
Method Summary
Modifier and TypeMethodDescription(package private) voidintIterates over all entries to check for obsolete ones (time expired or reference cleared).voidclear()Clears all cached entries.booleancontainsKey(KEY key) booleancontainsKeyWithValue(KEY key) voidevictToTargetSize(int targetSize) Get the cached entry or null if no valid cached entry is found.intintintintintintintOften used in addition totoString()to print out states: details why entries were removed.private VALUEgetValue(KEY keyForRemoval, ObjectCache.CacheEntry<VALUE> entry) private VALUEkeySet()Stores an new entry in the cache.voidStores all entries contained in the given map in the cache.Removes an entry from the cache.intsize()toString()
-
Field Details
-
values
-
referenceType
-
isStrongReference
private final boolean isStrongReference -
maxSize
private final int maxSize -
expirationMillis
private final long expirationMillis -
isExpiring
private final boolean isExpiring -
nextCleanUpTimestamp
private volatile long nextCleanUpTimestamp -
countPutCountSinceEviction
private volatile int countPutCountSinceEviction -
countPut
private volatile int countPut -
countHit
private volatile int countHit -
countMiss
private volatile int countMiss -
countExpired
private volatile int countExpired -
countRefCleared
private volatile int countRefCleared -
countEvicted
private volatile int countEvicted
-
-
Constructor Details
-
ObjectCache
Create a cache according to the given configuration.- Parameters:
referenceType- SOFT is usually a good choice allowing the VM to clear caches when running low on memory. STRONG may also be preferred, e.g. when the required space is granted.maxSize- The maximum number of entries stored by this cacheexpirationMillis-
-
-
Method Details
-
put
Stores an new entry in the cache. -
getValueForRemoved
-
getValue
-
putAll
Stores all entries contained in the given map in the cache. -
get
Get the cached entry or null if no valid cached entry is found. -
clear
public void clear()Clears all cached entries. -
remove
Removes an entry from the cache.- Returns:
- The removed entry
-
evictToTargetSize
public void evictToTargetSize(int targetSize) -
checkCleanUpObsoleteEntries
void checkCleanUpObsoleteEntries() -
cleanUpObsoleteEntries
public int cleanUpObsoleteEntries()Iterates over all entries to check for obsolete ones (time expired or reference cleared). Note: Usually you don't need to call this method explicitly, because it is called internally in certain conditions when space has to be reclaimed. -
containsKey
-
containsKeyWithValue
-
keySet
-
getMaxSize
public int getMaxSize() -
size
public int size() -
getCountPut
public int getCountPut() -
getCountHit
public int getCountHit() -
getCountMiss
public int getCountMiss() -
getCountExpired
public int getCountExpired() -
getCountRefCleared
public int getCountRefCleared() -
getCountEvicted
public int getCountEvicted() -
toString
-
getStatsStringRemoved
Often used in addition totoString()to print out states: details why entries were removed.
-