# Class Cache

java.lang.Object
org.apache.catalina.webresources.Cache

public class Cache extends Object
Cache for web resources managed by a StandardRoot.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final StringManager`
`sm`
String manager for internationalized messages.

## Constructor Summary

Constructors
Constructor
Description
`Cache(StandardRoot root)`
Constructs a cache for the given root.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`backgroundProcess()`
Performs background cache maintenance, evicting expired entries.
`void`
`clear()`
Clears all entries from the cache.
`WebResourceRoot.CacheStrategy`
`getCacheStrategy()`
Returns the cache strategy.
`long`
`getHitCount()`
Returns the total number of cache hits.
`long`
`getLookupCount()`
Returns the total number of cache lookups.
`long`
`getMaxSize()`
Returns the maximum cache size in kilobytes.
`int`
`getObjectMaxSize()`
Returns the maximum size of a single cached object in kilobytes.
`int`
`getObjectMaxSizeBytes()`
Returns the maximum size of a single cached object in bytes.
`protected WebResource`
`getResource(String path, boolean useClassLoaderResources)`
Retrieves a single resource from the cache.
`protected WebResource[]`
`getResources(String path, boolean useClassLoaderResources)`
Retrieves multiple resources from the cache.
`long`
`getSize()`
Returns the current cache size in kilobytes.
`long`
`getTtl()`
Returns the time-to-live for cached entries.
`void`
`setCacheStrategy(WebResourceRoot.CacheStrategy cacheStrategy)`
Sets the cache strategy.
`void`
`setMaxSize(long maxSize)`
Sets the maximum cache size in kilobytes.
`void`
`setObjectMaxSize(int objectMaxSize)`
Sets the maximum size of a single cached object in kilobytes.
`void`
`setTtl(long ttl)`
Sets the time-to-live for cached entries.

### Methods inherited from class Object

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

## Field Details

### sm

protected static final StringManager sm
String manager for internationalized messages.

## Constructor Details

### Cache

public Cache(StandardRoot root)
Constructs a cache for the given root.

Parameters:
  `root` - the standard root

## Method Details

### getResource

protected WebResource getResource(String path, boolean useClassLoaderResources)
Retrieves a single resource from the cache.

Parameters:
  `path` - resource path
  `useClassLoaderResources` - whether to use class loader resources
Returns:
  the web resource

### getResources

protected WebResource[] getResources(String path, boolean useClassLoaderResources)
Retrieves multiple resources from the cache.

Parameters:
  `path` - resource path
  `useClassLoaderResources` - whether to use class loader resources
Returns:
  the web resources

### backgroundProcess

protected void backgroundProcess()
Performs background cache maintenance, evicting expired entries.

### getCacheStrategy

public WebResourceRoot.CacheStrategy getCacheStrategy()
Returns the cache strategy.

Returns:
  the cache strategy

### setCacheStrategy

public void setCacheStrategy(WebResourceRoot.CacheStrategy cacheStrategy)
Sets the cache strategy.

Parameters:
  `cacheStrategy` - the cache strategy

### getTtl

public long getTtl()
Returns the time-to-live for cached entries.

Returns:
  the TTL in milliseconds

### setTtl

public void setTtl(long ttl)
Sets the time-to-live for cached entries.

Parameters:
  `ttl` - the TTL in milliseconds

### getMaxSize

public long getMaxSize()
Returns the maximum cache size in kilobytes.

Returns:
  the maximum size in KB

### setMaxSize

public void setMaxSize(long maxSize)
Sets the maximum cache size in kilobytes.

Parameters:
  `maxSize` - the maximum size in KB

### getLookupCount

public long getLookupCount()
Returns the total number of cache lookups.

Returns:
  the lookup count

### getHitCount

public long getHitCount()
Returns the total number of cache hits.

Returns:
  the hit count

### setObjectMaxSize

public void setObjectMaxSize(int objectMaxSize)
Sets the maximum size of a single cached object in kilobytes.

Parameters:
  `objectMaxSize` - the maximum object size in KB

### getObjectMaxSize

public int getObjectMaxSize()
Returns the maximum size of a single cached object in kilobytes.

Returns:
  the maximum object size in KB

### getObjectMaxSizeBytes

public int getObjectMaxSizeBytes()
Returns the maximum size of a single cached object in bytes.

Returns:
  the maximum object size in bytes

### clear

public void clear()
Clears all entries from the cache.

### getSize

public long getSize()
Returns the current cache size in kilobytes.

Returns:
  the current size in KB