cascading.util.cache

## Class DirectMappedCache<Key,Value>

- java.lang.Object
- - cascading.util.cache.DirectMappedCache<Key,Value>

All Implemented Interfaces:
  CascadingCache<Key,Value>, java.util.Map<Key,Value>

    public final class DirectMappedCache<Key,Value>
    extends java.lang.Object
    implements CascadingCache<Key,Value>

DirectMappedCache is an implementation of the `CascadingCache` interface following the semantics of http://en.wikipedia.org/wiki/CPU_cache#Direct-mapped_cache. The Cache is backed by an array that stays constant in size.

Unlike other implementation of a Map a hash collision will lead to the entry being overwritten. The `CacheEvictionCallback` is called with the entry that will be overwritten.

Use this cache if the keys are arriving in a random if not uniformly distributed order in order to reduce the number of hash and equality comparisons.

If duplicate keys are clustered near each other in the incoming tuple stream, consider the `LRUHashMapCache` cache instead.

DirectMappedCache does not permit `null` keys nor `null` values

See Also:
  `Unique`, `AggregateBy`, `DirectMappedCacheFactory`, `LRUHashMapCacheFactory`, `LRUHashMapCache`

### Nested Class Summary

### Nested classes/interfaces inherited from interface java.util.Map

`java.util.Map.Entry<K,V>`

### Field Summary

Fields
`boolean` `initialized`

### Constructor Summary

Constructors
Constructor and Description
`DirectMappedCache()`

### Method Summary

Methods
`void` `clear()`
`boolean` `containsKey(java.lang.Object key)`
`boolean` `containsValue(java.lang.Object value)`
`java.util.Set<java.util.Map.Entry<Key,Value>>` `entrySet()`
`Value` `get(java.lang.Object key)`
`int` `getCapacity()` Returns the capacity of this cache.
`void` `initialize()` Method to initialize the Cache.
`boolean` `isEmpty()`
`java.util.Set<Key>` `keySet()`
`Value` `put(Key key, Value value)`
`void` `putAll(java.util.Map<? extends Key,? extends Value> m)`
`Value` `remove(java.lang.Object key)`
`void` `setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)` Sets the `CacheEvictionCallback` of this Cache.
`void` `setCapacity(int capacity)` Sets the capacity of the Cache.
`int` `size()`
`java.util.Collection<Value>` `values()`

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

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

### Methods inherited from interface java.util.Map

`equals, hashCode`

### Field Detail

#### initialized

    public boolean initialized

### Constructor Detail

#### DirectMappedCache

    public DirectMappedCache()

### Method Detail

#### size

    public int size()

Specified by:
  `size` in interface `java.util.Map<Key,Value>`

#### isEmpty

    public boolean isEmpty()

Specified by:
  `isEmpty` in interface `java.util.Map<Key,Value>`

#### containsKey

    public boolean containsKey(java.lang.Object key)

Specified by:
  `containsKey` in interface `java.util.Map<Key,Value>`

#### containsValue

    public boolean containsValue(java.lang.Object value)

Specified by:
  `containsValue` in interface `java.util.Map<Key,Value>`

#### get

    public Value get(java.lang.Object key)

Specified by:
  `get` in interface `java.util.Map<Key,Value>`

#### put

    public Value put(Key key,
            Value value)

Specified by:
  `put` in interface `java.util.Map<Key,Value>`

#### remove

    public Value remove(java.lang.Object key)

Specified by:
  `remove` in interface `java.util.Map<Key,Value>`

#### putAll

    public void putAll(java.util.Map<? extends Key,? extends Value> m)

Specified by:
  `putAll` in interface `java.util.Map<Key,Value>`

#### clear

    public void clear()

Specified by:
  `clear` in interface `java.util.Map<Key,Value>`

#### keySet

    public java.util.Set<Key> keySet()

Specified by:
  `keySet` in interface `java.util.Map<Key,Value>`

#### values

    public java.util.Collection<Value> values()

Specified by:
  `values` in interface `java.util.Map<Key,Value>`

#### entrySet

    public java.util.Set<java.util.Map.Entry<Key,Value>> entrySet()

Specified by:
  `entrySet` in interface `java.util.Map<Key,Value>`

#### getCapacity

    public int getCapacity()

Description copied from interface: `CascadingCache`
Returns the capacity of this cache.

Specified by:
  `getCapacity` in interface `CascadingCache<Key,Value>`

#### setCacheEvictionCallback

    public void setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)

Description copied from interface: `CascadingCache`
Sets the `CacheEvictionCallback` of this Cache.

Specified by:
  `setCacheEvictionCallback` in interface `CascadingCache<Key,Value>`

#### setCapacity

    public void setCapacity(int capacity)

Description copied from interface: `CascadingCache`
Sets the capacity of the Cache.

Specified by:
  `setCapacity` in interface `CascadingCache<Key,Value>`

#### initialize

    public void initialize()

Description copied from interface: `CascadingCache`
Method to initialize the Cache. Any setup should be done in here.

Specified by:
  `initialize` in interface `CascadingCache<Key,Value>`