freemarker.cache
Class SoftCacheStorage

java.lang.Object
  extended by freemarker.cache.SoftCacheStorage
All Implemented Interfaces:
CacheStorage, ConcurrentCacheStorage

public class SoftCacheStorage
extends java.lang.Object
implements ConcurrentCacheStorage

Soft cache storage is a cache storage that uses SoftReference objects to hold the objects it was passed, therefore allows the garbage collector to purge the cache when it determines that it wants to free up memory. This class is thread-safe to the extent that its underlying map is. The default implementation uses a concurrent map on Java 5 and above, so it is thread-safe in that case.

Author:
Attila Szegedi
See Also:
Configuration.setCacheStorage(CacheStorage)

Constructor Summary
SoftCacheStorage()
           
SoftCacheStorage(java.util.Map backingMap)
           
 
Method Summary
 void clear()
           
 java.lang.Object get(java.lang.Object key)
           
 boolean isConcurrent()
          Returns true if this instance of cache storage is concurrently accessible from multiple threads without synchronization.
 void put(java.lang.Object key, java.lang.Object value)
           
 void remove(java.lang.Object key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SoftCacheStorage

public SoftCacheStorage()

SoftCacheStorage

public SoftCacheStorage(java.util.Map backingMap)
Method Detail

isConcurrent

public boolean isConcurrent()
Description copied from interface: ConcurrentCacheStorage
Returns true if this instance of cache storage is concurrently accessible from multiple threads without synchronization.

Specified by:
isConcurrent in interface ConcurrentCacheStorage
Returns:
true if this instance of cache storage is concurrently accessible from multiple threads without synchronization.

get

public java.lang.Object get(java.lang.Object key)
Specified by:
get in interface CacheStorage

put

public void put(java.lang.Object key,
                java.lang.Object value)
Specified by:
put in interface CacheStorage

remove

public void remove(java.lang.Object key)
Specified by:
remove in interface CacheStorage

clear

public void clear()
Specified by:
clear in interface CacheStorage