org.jgroups.blocks

## Class LazyRemovalCache<K,V>

- java.lang.Object
- - org.jgroups.blocks.LazyRemovalCache<K,V>

    public class LazyRemovalCache<K,V>
    extends java.lang.Object

Cache which doesn't remove elements on remove(), removeAll() or retainAll(), but only removes elements when a configurable size limit has been exceeded. In that case, all elements marked as removable and older than a configurable time are evicted. Elements are marked as removable by remove(), removeAll() and retainAll(). When an elements is marked as removable, but later reinserted, the mark is removed.

Author:
  Bela Ban

### Nested Class Summary

Nested Classes
`static interface` `LazyRemovalCache.Printable<K,V>`

### Constructor Summary

Constructors
Constructor and Description
`LazyRemovalCache()`
`LazyRemovalCache(int max_elements, long max_age)`

### Method Summary

Methods
`void` `add(K key, V val)`
`void` `clear(boolean force)`
`boolean` `containsKey(K key)`
`boolean` `containsKeys(java.util.Collection<K> keys)` Returns true if all of the keys in keys are present.
`java.util.Map<K,V>` `contents()`
`V` `get(K key)`
`K` `getByValue(V val)`
`java.util.Set<V>` `nonRemovedValues()` Adds all value which have not been marked as removable to the returned set
`java.lang.String` `printCache()`
`java.lang.String` `printCache(LazyRemovalCache.Printable print_function)`
`void` `remove(K key)`
`void` `remove(K key, boolean force)`
`void` `removeAll(java.util.Collection<K> keys)`
`void` `removeAll(java.util.Collection<K> keys, boolean force)`
`void` `removeMarkedElements()` Removes elements marked as removable
`void` `removeMarkedElements(boolean force)` Removes elements marked as removable
`void` `retainAll(java.util.Collection<K> keys)`
`void` `retainAll(java.util.Collection<K> keys, boolean force)`
`int` `size()`
`java.lang.String` `toString()`
`java.util.Set<V>` `values()`

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

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

### Constructor Detail

#### LazyRemovalCache

    public LazyRemovalCache()

#### LazyRemovalCache

    public LazyRemovalCache(int max_elements,
                    long max_age)

### Method Detail

#### add

    public void add(K key,
           V val)

#### containsKey

    public boolean containsKey(K key)

#### containsKeys

    public boolean containsKeys(java.util.Collection<K> keys)

Returns true if all of the keys in keys are present. Returns false if one or more of the keys are absent

#### get

    public V get(K key)

#### getByValue

    public K getByValue(V val)

#### remove

    public void remove(K key)

#### remove

    public void remove(K key,
              boolean force)

#### removeAll

    public void removeAll(java.util.Collection<K> keys)

#### removeAll

    public void removeAll(java.util.Collection<K> keys,
                 boolean force)

#### clear

    public void clear(boolean force)

#### retainAll

    public void retainAll(java.util.Collection<K> keys)

#### retainAll

    public void retainAll(java.util.Collection<K> keys,
                 boolean force)

#### values

    public java.util.Set<V> values()

#### nonRemovedValues

    public java.util.Set<V> nonRemovedValues()

Adds all value which have not been marked as removable to the returned set

Returns:

#### contents

    public java.util.Map<K,V> contents()

#### size

    public int size()

#### printCache

    public java.lang.String printCache()

#### printCache

    public java.lang.String printCache(LazyRemovalCache.Printable print_function)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### removeMarkedElements

    public void removeMarkedElements(boolean force)

Removes elements marked as removable

Parameters:
  `force` - If set to true, all elements marked as 'removable' will get removed, regardless of expiration

#### removeMarkedElements

    public void removeMarkedElements()

Removes elements marked as removable