Package org.apache.struts2.ognl

# Class OgnlDefaultCache<K,V>

java.lang.Object
org.apache.struts2.ognl.OgnlDefaultCache<K,V>

Type Parameters:
  `K` - The type for the cache key entries
  `V` - The type for the cache value entries

All Implemented Interfaces:
  `OgnlCache<K,V>`

public class OgnlDefaultCache<K,V> extends Object implements OgnlCache<K,V>

Basic OGNL cache implementation.

This implementation is backed by a `ConcurrentHashMap` that is cleared whenever the eviction limit is surpassed.

Setting a very high eviction limit simulates an unlimited cache.

Setting too low an eviction limit will make the cache ineffective.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OgnlDefaultCache(int evictionLimit, int initialCapacity, float loadFactor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  `V`
  `get(K key)`
  `int`
  `getEvictionLimit()`
  `void`
  `put(K key, V value)`
  `void`
  `putIfAbsent(K key, V value)`
  `void`
  `setEvictionLimit(int cacheEvictionLimit)`
  `int`
  `size()`

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

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

- ## Constructor Details

  - ### OgnlDefaultCache

    public OgnlDefaultCache(int evictionLimit, int initialCapacity, float loadFactor)

- ## Method Details

  - ### get

    public V get(K key)
    Specified by:
      `get` in interface `OgnlCache<K,V>`

  - ### put

    public void put(K key, V value)
    Specified by:
      `put` in interface `OgnlCache<K,V>`

  - ### putIfAbsent

    public void putIfAbsent(K key, V value)
    Specified by:
      `putIfAbsent` in interface `OgnlCache<K,V>`

  - ### size

    public int size()
    Specified by:
      `size` in interface `OgnlCache<K,V>`

  - ### clear

    public void clear()
    Specified by:
      `clear` in interface `OgnlCache<K,V>`

  - ### getEvictionLimit

    public int getEvictionLimit()
    Specified by:
      `getEvictionLimit` in interface `OgnlCache<K,V>`

  - ### setEvictionLimit

    public void setEvictionLimit(int cacheEvictionLimit)
    Specified by:
      `setEvictionLimit` in interface `OgnlCache<K,V>`