Package org.apache.velocity.runtime.resource

# Class ResourceCacheImpl

java.lang.Object
org.apache.velocity.runtime.resource.ResourceCacheImpl

All Implemented Interfaces:
  `ResourceCache`

public class ResourceCacheImpl extends Object implements ResourceCache
Default implementation of the resource cache for the default ResourceManager. The cache uses a least recently used (LRU) algorithm, with a maximum size specified via the `resource.manager.cache.size` property (identified by the `RuntimeConstants.RESOURCE_MANAGER_DEFAULTCACHE_SIZE` constant). This property get be set to `0` or less for a greedy, unbounded cache (the behavior from pre-v1.5).

Version:
  $Id$
Author:
  Geir Magnusson Jr., Daniel Rall

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Map<Object,Resource>`
`cache`
Cache storage, assumed to be thread-safe.
`protected org.slf4j.Logger`
`log`
`protected RuntimeServices`
`rsvc`
Runtime services, generally initialized by the `initialize()` method.

## Constructor Summary

Constructors
Constructor
Description
`ResourceCacheImpl()`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Removes all of the resources from this cache.
`Iterator<Object>`
`enumerateKeys()`
returns an Iterator of Keys in the cache.
`Resource`
`get(Object key)`
retrieves a Resource from the cache
`void`
`initialize(RuntimeServices rs)`
initializes the ResourceCache.
`Resource`
`put(Object key, Resource value)`
stores a Resource in the cache
`Resource`
`remove(Object key)`
removes a Resource from the cache

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

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

## Field Details

### cache

protected Map<Object,Resource> cache
Cache storage, assumed to be thread-safe.

### rsvc

protected RuntimeServices rsvc
Runtime services, generally initialized by the `initialize()` method.

### log

protected org.slf4j.Logger log

## Constructor Details

### ResourceCacheImpl

public ResourceCacheImpl()

## Method Details

### initialize

public void initialize(RuntimeServices rs)
Description copied from interface: `ResourceCache`
initializes the ResourceCache. Will be called before any utilization

Specified by:
  `initialize` in interface `ResourceCache`
Parameters:
  `rs` - RuntimeServices to use for logging, etc
See Also:
  - `ResourceCache.initialize(org.apache.velocity.runtime.RuntimeServices)`

### get

public Resource get(Object key)
Description copied from interface: `ResourceCache`
retrieves a Resource from the cache

Specified by:
  `get` in interface `ResourceCache`
Parameters:
  `key` - key for Resource to be retrieved
Returns:
  Resource specified or null if not found
See Also:
  - `ResourceCache.get(java.lang.Object)`

### put

public Resource put(Object key, Resource value)
Description copied from interface: `ResourceCache`
stores a Resource in the cache

Specified by:
  `put` in interface `ResourceCache`
Parameters:
  `key` - key to associate with the Resource
  `value` - Resource to be stored
Returns:
  existing Resource stored under this key, or null if none
See Also:
  - `ResourceCache.put(java.lang.Object, org.apache.velocity.runtime.resource.Resource)`

### remove

public Resource remove(Object key)
Description copied from interface: `ResourceCache`
removes a Resource from the cache

Specified by:
  `remove` in interface `ResourceCache`
Parameters:
  `key` - resource to be removed
Returns:
  stored under key
See Also:
  - `ResourceCache.remove(java.lang.Object)`

### clear

public void clear()
Description copied from interface: `ResourceCache`
Removes all of the resources from this cache. The cache will be empty after this call returns.

Specified by:
  `clear` in interface `ResourceCache`
Since:
  2.0
See Also:
  - `ResourceCache.clear()`

### enumerateKeys

public Iterator<Object> enumerateKeys()
Description copied from interface: `ResourceCache`
returns an Iterator of Keys in the cache.

Specified by:
  `enumerateKeys` in interface `ResourceCache`
Returns:
  An Iterator of Keys in the cache.
See Also:
  - `ResourceCache.enumerateKeys()`