org.archive.util
Class ObjectIdentityMemCache<V>

java.lang.Object
  extended by org.archive.util.ObjectIdentityMemCache<V>
Type Parameters:
V -
All Implemented Interfaces:
java.io.Closeable, ObjectIdentityCache<java.lang.String,V>

public class ObjectIdentityMemCache<V>
extends java.lang.Object
implements ObjectIdentityCache<java.lang.String,V>

Trivial all-in-memory object cache, using a single internal ConcurrentHashMap.


Field Summary
(package private)  java.util.concurrent.ConcurrentHashMap<java.lang.String,V> map
           
 
Constructor Summary
ObjectIdentityMemCache()
           
ObjectIdentityMemCache(int cap, float load, int conc)
           
 
Method Summary
 void close()
          close/release any associated resources
 V get(java.lang.String key)
          get the object under the given key/name
 V getOrUse(java.lang.String key, Supplier<V> supplierOrNull)
          get the object under the given key/name, using (and remembering) the object supplied by the supplier if no prior mapping exists
 java.util.Set<java.lang.String> keySet()
          set of all keys
 int size()
          count of name-to-object contained
 void sync()
          force the persistent backend, if any, to be updated with all live object state
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

map

java.util.concurrent.ConcurrentHashMap<java.lang.String,V> map
Constructor Detail

ObjectIdentityMemCache

public ObjectIdentityMemCache()

ObjectIdentityMemCache

public ObjectIdentityMemCache(int cap,
                              float load,
                              int conc)
Method Detail

close

public void close()
Description copied from interface: ObjectIdentityCache
close/release any associated resources

Specified by:
close in interface java.io.Closeable
Specified by:
close in interface ObjectIdentityCache<java.lang.String,V>

get

public V get(java.lang.String key)
Description copied from interface: ObjectIdentityCache
get the object under the given key/name

Specified by:
get in interface ObjectIdentityCache<java.lang.String,V>

getOrUse

public V getOrUse(java.lang.String key,
                  Supplier<V> supplierOrNull)
Description copied from interface: ObjectIdentityCache
get the object under the given key/name, using (and remembering) the object supplied by the supplier if no prior mapping exists

Specified by:
getOrUse in interface ObjectIdentityCache<java.lang.String,V>

size

public int size()
Description copied from interface: ObjectIdentityCache
count of name-to-object contained

Specified by:
size in interface ObjectIdentityCache<java.lang.String,V>

keySet

public java.util.Set<java.lang.String> keySet()
Description copied from interface: ObjectIdentityCache
set of all keys

Specified by:
keySet in interface ObjectIdentityCache<java.lang.String,V>

sync

public void sync()
Description copied from interface: ObjectIdentityCache
force the persistent backend, if any, to be updated with all live object state

Specified by:
sync in interface ObjectIdentityCache<java.lang.String,V>


Copyright © 2003-2011 Internet Archive. All Rights Reserved.