StrongCacheStorage (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.cache, class: StrongCacheStorage

Package freemarker.cache

# Class StrongCacheStorage

java.lang.Object
freemarker.cache.StrongCacheStorage

All Implemented Interfaces:
  `CacheStorage`, `CacheStorageWithGetSize`, `ConcurrentCacheStorage`

public class StrongCacheStorage extends Object implements ConcurrentCacheStorage, CacheStorageWithGetSize
Strong cache storage is a cache storage that simply wraps a `Map`. It holds a strong reference to all objects it was passed, therefore prevents the cache from being purged during garbage collection. This class is always thread-safe since 2.3.24, before that if we are running on Java 5 or later.

See Also:
  `Configuration.setCacheStorage(CacheStorage)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StrongCacheStorage()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  `Object`
  `get​(Object key)`
  `int`
  `getSize()`
  Returns a close approximation of the number of cache entries.
  `boolean`
  `isConcurrent()`
  Always returns `true`.
  `void`
  `put​(Object key, Object value)`
  `void`
  `remove​(Object key)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### StrongCacheStorage

    public StrongCacheStorage()

- ## Method Details

  - ### isConcurrent

    public boolean isConcurrent()
    Always returns `true`.
    Specified by:
      `isConcurrent` in interface `ConcurrentCacheStorage`
    Returns:
      true if this instance of cache storage is concurrently accessible from multiple threads without synchronization.

  - ### get

    public Object get​(Object key)
    Specified by:
      `get` in interface `CacheStorage`

  - ### put

    public void put​(Object key, Object value)
    Specified by:
      `put` in interface `CacheStorage`

  - ### remove

    public void remove​(Object key)
    Specified by:
      `remove` in interface `CacheStorage`

  - ### getSize

    public int getSize()
    Returns a close approximation of the number of cache entries.
    Specified by:
      `getSize` in interface `CacheStorageWithGetSize`
    Since:
      2.3.21

  - ### clear

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