Package org.datanucleus.cache
Class StrongRefCache
- java.lang.Object
-
- org.datanucleus.cache.StrongRefCache
-
- All Implemented Interfaces:
java.util.Map<java.lang.Object,DNStateManager>,Level1Cache
public class StrongRefCache extends java.lang.Object implements Level1Cache
Implementation of a Level 1 cache keeping strong references to the objects. This means that objects are not garbage collected, and have to be removed directly by calls to remove(). This differs from the WeakRefCache/SoftRefCache which do not guarantee to retain objects.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.Object,DNStateManager>cacheprivate java.util.Map<CacheUniqueKey,DNStateManager>cacheUniquestatic java.lang.StringNAME-
Fields inherited from interface org.datanucleus.cache.Level1Cache
NONE_NAME
-
-
Constructor Summary
Constructors Constructor Description StrongRefCache()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()booleancontainsKey(java.lang.Object id)booleancontainsValue(java.lang.Object value)java.util.SetentrySet()DNStateManagerget(java.lang.Object id)DNStateManagergetUnique(CacheUniqueKey key)Method to retrieve StateManager for the specified unique key.booleanisEmpty()java.util.SetkeySet()DNStateManagerput(java.lang.Object id, DNStateManager sm)voidputAll(java.util.Map t)java.lang.ObjectputUnique(CacheUniqueKey key, DNStateManager sm)Method to store a StateManager for this unique key.DNStateManagerremove(java.lang.Object id)intsize()java.util.Collectionvalues()
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
cache
private java.util.Map<java.lang.Object,DNStateManager> cache
-
cacheUnique
private java.util.Map<CacheUniqueKey,DNStateManager> cacheUnique
-
-
Method Detail
-
put
public DNStateManager put(java.lang.Object id, DNStateManager sm)
- Specified by:
putin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
get
public DNStateManager get(java.lang.Object id)
- Specified by:
getin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
containsKey
public boolean containsKey(java.lang.Object id)
- Specified by:
containsKeyin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
remove
public DNStateManager remove(java.lang.Object id)
- Specified by:
removein interfacejava.util.Map<java.lang.Object,DNStateManager>
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValuein interfacejava.util.Map<java.lang.Object,DNStateManager>
-
entrySet
public java.util.Set entrySet()
- Specified by:
entrySetin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
keySet
public java.util.Set keySet()
- Specified by:
keySetin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
putAll
public void putAll(java.util.Map t)
- Specified by:
putAllin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
size
public int size()
- Specified by:
sizein interfacejava.util.Map<java.lang.Object,DNStateManager>
-
values
public java.util.Collection values()
- Specified by:
valuesin interfacejava.util.Map<java.lang.Object,DNStateManager>
-
getUnique
public DNStateManager getUnique(CacheUniqueKey key)
Description copied from interface:Level1CacheMethod to retrieve StateManager for the specified unique key.- Specified by:
getUniquein interfaceLevel1Cache- Parameters:
key- Unique key- Returns:
- StateManager if one is cached for this unique key
-
putUnique
public java.lang.Object putUnique(CacheUniqueKey key, DNStateManager sm)
Description copied from interface:Level1CacheMethod to store a StateManager for this unique key.- Specified by:
putUniquein interfaceLevel1Cache- Parameters:
key- The unique keysm- StateManager- Returns:
- The previous StateManager for this unique key if one was present, otherwise null
-
-